您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
使用JUnit進行Java代碼的單元測試
作者:網(wǎng)絡轉(zhuǎn)載 發(fā)布時間:[ 2013/12/13 14:17:12 ] 推薦標簽:

  從上述例子可以看出:
  1、要想指定壹? Runner ,需要使用 @RunWith 標注,并且把你所指定的 Runner 類名作為參數(shù)傳遞給它,在JUnit4.8.2的版本中,系統(tǒng)提供了若干可以直接使用的Runner類型,它們的定義都在包org.junit.runners下面。
  2、注解 @RunWith 是用來修飾類的,而不是用來修飾函數(shù)的。只要對壹?類指定了 Runner ,那么這個類中的所有函數(shù)都被這個 Runner 來調(diào)用。
  3、在使用注解@RunWith時,要在頭部包含相應的包名,上面的例子對這壹點寫的很清楚了。
  接下來,我會向你們展示其他 Runner 的特有功能。
  使用參數(shù)化測試完成需要錄入大量數(shù)據(jù)的測試
  你可能遇到過這樣的函數(shù),它的參數(shù)有許多特殊值,或者說他的參數(shù)分為很多個區(qū)域。比如,壹?對考試分數(shù)進行評價的函數(shù),返回值分別為“,良好,壹般,及格,不及格”,因此你在編寫測試的時候,至少要寫5?測試,把這五種情況都包含了,這確實是壹件很麻煩的事情。這里我們?nèi)匀皇褂孟惹暗睦,測試壹下square()這個函數(shù),暫且分三類:正數(shù)、0、負數(shù)。測試代碼如下:
package net.oschina.bairrfhoinn.test;
import static org.junit.Assert.*;
import net.oschina.bairrfhoinn.main.Calculator;
import org.junit.Before;
import org.junit.Test;
public class AdvancedTest {
private static Calculator calculator = new Calculator();
@Before
public void setUp() throws Exception {
calculator.clear();
}
@Test
public void testSquare1(){
calculator.square(2);
assertEquals(4, calculator.getReuslt());
}
@Test
public void testSquare2(){
calculator.square(0);
assertEquals(0, calculator.getReuslt());
}
@Test
public void testSquare3(){
calculator.square(-3);
assertEquals(9, calculator.getReuslt());
}
}
  為了簡化類似的測試,JUnit4提出了“參數(shù)化測試”的概念,只寫壹?測試函數(shù),把這若干種情況的輸入?yún)?shù)和預期的運行結(jié)果放在集合中,然后將這?集合作為參數(shù)傳遞進去,壹次性的完成測試。代碼如下:
package net.oschina.bairrfhoinn.test;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Collection;
import net.oschina.bairrfhoinn.main.Calculator;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class SquareTest {
@Parameters
public static Collection prepareData(){
return Arrays.asList(new Object[][]{{2,4},{0, 0},{-3, 9}});
}
public SquareTest(int param, int result){
this.param = param;
this.result = result;
}
@Test
public void square(){
calculator.square(param);
assertEquals(result, calculator.getReuslt());
}
private int param;
private int result;
private static Calculator calculator = new Calculator();
}

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