@Test這個注解最常用了,不用多說。
上一篇學Junit的運作過程時又學到了四種:
@BeforeClass:會在所有的方法執行之前會執行,static修飾
@AfterClass:會在所有的方法運作結束之後被執行,static修飾
@Before:會在每一個測試方法被運作之前執行一次
@After:會在每一個測試方法運作完成之後被執行一次
除此之外,還有幾個常用的。
1、@Test的兩種處理情況:
@Test(expected=異常類.class),異常捕獲,如@Test(expected=ArithmeticException.class)。當你預知代碼會出現某個異常,使用expected,當代碼出現該異常時不會抛出,保證代碼的執行
@Test(timeout=毫秒) 逾時處理,如Test(timeout=2000)。當代碼執行的時間超過timeout規定的時間時,将不再執行。
如:
//@Test:添加該注解直接運作将報錯:java.lang.ArithmeticException: / by zero
@Test(expected=ArithmeticException.class)//添加預期異常,将不再報錯
public void testDivide() {
assertEquals(2,new Calculate().divide(6, 0));
//0不能作為除數
}
@Test(timeout=2000)//逾時時間設定為2秒,超過2秒将不再執行
public void testWhile(){
while(true){
System.out.println("run forever......");
}
}
2、@Ignore:所修飾的測試方法會被測試運作器忽略,如:
@Ignore("測試該方法不會運作")
@Test(timeout=2000)//逾時時間設定為2秒,超過2将不再執行
public void testWhile2(){
while(true){
System.out.println("run forever......");
}
}
3、@RunWith:用來修改測試運作器(可以自定義運作器,隻需要繼承org.junit.runner.Runner即可)