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

  從上述例子可以看出:
  1、要想指定壹? Runner ,需要使用 @RunWith 標(biāo)注,并且把你所指定的 Runner 類名作為參數(shù)傳遞給它,在JUnit4.8.2的版本中,系統(tǒng)提供了若干可以直接使用的Runner類型,它們的定義都在包org.junit.runners下面。
  2、注解 @RunWith 是用來(lái)修飾類的,而不是用來(lái)修飾函數(shù)的。只要對(duì)壹?類指定了 Runner ,那么這個(gè)類中的所有函數(shù)都被這個(gè) Runner 來(lái)調(diào)用。
  3、在使用注解@RunWith時(shí),要在頭部包含相應(yīng)的包名,上面的例子對(duì)這壹點(diǎn)寫的很清楚了。
  接下來(lái),我會(huì)向你們展示其他 Runner 的特有功能。
  使用參數(shù)化測(cè)試完成需要錄入大量數(shù)據(jù)的測(cè)試
  你可能遇到過(guò)這樣的函數(shù),它的參數(shù)有許多特殊值,或者說(shuō)他的參數(shù)分為很多個(gè)區(qū)域。比如,壹?對(duì)考試分?jǐn)?shù)進(jìn)行評(píng)價(jià)的函數(shù),返回值分別為“,良好,壹般,及格,不及格”,因此你在編寫測(cè)試的時(shí)候,至少要寫5?測(cè)試,把這五種情況都包含了,這確實(shí)是壹件很麻煩的事情。這里我們?nèi)匀皇褂孟惹暗睦樱瑴y(cè)試壹下square()這個(gè)函數(shù),暫且分三類:正數(shù)、0、負(fù)數(shù)。測(cè)試代碼如下:
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());
}
}
  為了簡(jiǎn)化類似的測(cè)試,JUnit4提出了“參數(shù)化測(cè)試”的概念,只寫壹?測(cè)試函數(shù),把這若干種情況的輸入?yún)?shù)和預(yù)期的運(yùn)行結(jié)果放在集合中,然后將這?集合作為參數(shù)傳遞進(jìn)去,壹次性的完成測(cè)試。代碼如下:
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();
}

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