3) 運(yùn)行測試
系統(tǒng)會打開JUnit透視圖,如果測試全部通過,則顯示顏色條為綠色;我們將assertEquals(3,Math.divide(9,3));改成assertEquals(2,Math.divide(9,3));則顯示顏色條為紅色,我們可以對錯誤或者故障的地方進(jìn)行追蹤。
4) 創(chuàng)建測試套件
測試套件可以將多個測試用例合在一起測試,將相關(guān)的測試用例合成一個測試套件,在做一個修改后,只需要運(yùn)行測試套件可以,不需要運(yùn)行每一個測試用例。
Junit4沒有采用以前的套件測試方法,同樣使用annotation的方式來進(jìn)行。簡單在你所要構(gòu)建測試套件的包里創(chuàng)建一個文件,一般以包名+4Suite
下面我在上面的測試包中復(fù)制一下之前的測試類并且一個改名字叫做MathTestAnother,新建一個class類叫做Uitl4Suite,代碼如下:
Java代碼
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
/**
* @author bulargy.j.bai
* @創(chuàng)建時間:Mar 11, 2008
* @描述:util包的測試套件
*/
@RunWith(Suite.class)
@SuiteClasses({MathTest.class,
MathTestAnother.class})
public class Util4Suite {
}
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
/**
* @author bulargy.j.bai
* @創(chuàng)建時間:Mar 11, 2008
* @描述:util包的測試套件
*/
@RunWith(Suite.class)
@SuiteClasses({MathTest.class,
MathTestAnother.class})
public class Util4Suite {
}
說明:
通過@RunWith和@SuiteClasses標(biāo)簽來注釋一個空的包含無參數(shù)構(gòu)造函數(shù)的類來作為套件類,將需要組成套件運(yùn)行的類加到@SuiteClasses的屬性中即可。
可以看到運(yùn)行套件類的結(jié)果是2個測試類都進(jìn)行了測試。
5) 參數(shù)測試
修改 testMultiple
Java代碼
//@Ignore("忽略乘法測試")
@Test
public void testMultiple() {
assertEquals(result,Math.multiple(faciend,multiplicator));
}
//@Ignore("忽略乘法測試")
@Test
public void testMultiple() {
assertEquals(result,Math.multiple(faciend,multiplicator));
}
編寫參數(shù)方法:
Java代碼
@Parameters
public static Collection multipleValues() {
return Arrays.asList(new Object[][] {
{3, 2, 6 },
{4, 3, 12 },
{21, 5, 105 },
{11, 22, 242 },
{8, 9, 72 }});
}
@Parameters
public static Collection multipleValues() {
return Arrays.asList(new Object[][] {
{3, 2, 6 },
{4, 3, 12 },
{21, 5, 105 },
{11, 22, 242 },
{8, 9, 72 }});
}
說明:
需要使用@Parameters標(biāo)簽注解一個靜態(tài)的返回集合對象的方法
增加成員變量和構(gòu)造函數(shù):
Java代碼
int faciend;
int multiplicator;
int result;
public MathTest(int faciend, int multiplicator, int result) {
this.faciend = faciend;
this.multiplicator = multiplicator;
this.result = result;
}
int faciend;
int multiplicator;
int result;
public MathTest(int faciend, int multiplicator, int result) {
this.faciend = faciend;
this.multiplicator = multiplicator;
this.result = result;
}
后在給測試類增加如下注釋:
Java代碼
@RunWith(Parameterized.class)