您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit基礎(chǔ)知識
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/3/29 14:48:08 ] 推薦標(biāo)簽:

一、JUnit基礎(chǔ)知識    

1、幾個(gè)相關(guān)的概念

白盒測試——把測試對象看作一個(gè)打開的盒子,程序內(nèi)部的邏輯結(jié)構(gòu)和其他信息對測試人員是公開的。

回歸測試——軟件或環(huán)境的修復(fù)或更正后的“再測試”,自動測試工具對這類測試尤其有用。

單元測試——是小粒度的測試,以測試某個(gè)功能或代碼塊。一般由程序員來做,因?yàn)樗枰纼?nèi)部程序設(shè)計(jì)和編碼的細(xì)節(jié)。

JUnit ——是一個(gè)開發(fā)源代碼的Java測試框架,用于編寫和運(yùn)行可重復(fù)的測試。他是用于單元測試框架體系xUnit的一個(gè)實(shí)例(用于java語言)。主要用于白盒測試,回歸測試。

 

二、 Junit入門簡介

1、JUnit的好處和JUnit單元測試編寫原則

好處:

A、可以使測試代碼與產(chǎn)品代碼分開。

B、針對某一個(gè)類的測試代碼通過較少的改動便可以應(yīng)用于另一個(gè)類的測試。

C、易于集成到測試人員的構(gòu)建過程中,JUnit和Ant的結(jié)合可以實(shí)施增量開發(fā)。

D、JUnit是公開源代碼的,可以進(jìn)行二次開發(fā)。

C、可以方便地對JUnit進(jìn)行擴(kuò)展。

編寫原則:

    A、是簡化測試的編寫,這種簡化包括測試框架的學(xué)習(xí)和實(shí)際測試單元的編寫。

B、是使測試單元保持持久性。

C、是可以利用既有的測試來編寫相關(guān)的測試。

3.2、JUnit的特征
    A、使用斷言方法判斷期望值和實(shí)際值差異,返回Boolean值。

B、測試驅(qū)動設(shè)備使用共同的初始化變量或者實(shí)例。

C、測試包結(jié)構(gòu)便于組織和集成運(yùn)行。

D、支持圖型交互模式和文本交互模式。

3.3、JUnit框架組成

A、對測試目標(biāo)進(jìn)行測試的方法與過程集合,可稱為測試用例(TestCase)。

B、測試用例的集合,可容納多個(gè)測試用例(TestCase),將其稱作測試包(TestSuite)。

C、測試結(jié)果的描述與記錄。(TestResult) 。

D、測試過程中的事件監(jiān)聽者(TestListener)。

E、每一個(gè)測試方法所發(fā)生的與預(yù)期不一致狀況的描述,稱其測試失敗元素(TestFailure)

F、JUnit Framework中的出錯異常(AssertionFailedError)。

     JUnit框架是一個(gè)典型的Composite模式:TestSuite可以容納任何派生自Test的對象;當(dāng)調(diào)用TestSuite對象的run()方法是,會遍歷自己容納的對象,逐個(gè)調(diào)用它們的run()方法。

三、Junit中測試私有函數(shù)的方法

eclipse中如何寫一個(gè)測試私有方法的junit?
假設(shè)類Summer定義如下:
public class Summer{
   private int methodone(String argsone){
      //method code
      .......
      return 4;
   }
}

測試如下:
public class SummerTest extends TestCase {
   public void testMethodone(){
      Object rightResult = xxxxx;
      Summer example = new Summer.newInstance();
      Method m = example .getClass().getDeclaredMethod("methodone",new Class[]{String.class});
      m.setAclearcase/" target="_blank" >ccessible(true);
      Object result = m.invoke(example ,new Object[] {new String(xxxx)});
      m.setAccessible(false);
      if (result.equals(rightResult)){
         //your code
         ......
      }

   }

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd