@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即可)