@BeforeClass和@AfterClass是JUnit4得新特性,标记有@BeforeClass的方法会载所有的测试方法执行开始前运行,标记有@AfterClass的方法会在所有的测试方法运行结束后执行。
今天碰到一个问题,我有下面的一个测试类:
在运行的时候,始终无法通过。后来通过Debug发现createTestData和deleteTestData方法没有执行。仔细检查代码,原因是测试类继承了TestCase类。在JUnit4中,如果测试类继承了TestCase类,那么所有的Annotation都不会起作用。在上面的例子中,所有的Annotation都不起作用了,但是testMethodA的命名符合TestCase中测试方法的规范,所以该方法还是会被执行,但是由于createTestData没有执行,测试数据没有被创建,方法执行当然会失败。
今天碰到一个问题,我有下面的一个测试类:
public class TestXXX extends TestCase {
@BeforeClass
public void createTestData(){
................
}
@Test
public void testMethodA(){
....................
}
@AfterClass
public void deleteTestData(){
...........
}
}
在运行的时候,始终无法通过。后来通过Debug发现createTestData和deleteTestData方法没有执行。仔细检查代码,原因是测试类继承了TestCase类。在JUnit4中,如果测试类继承了TestCase类,那么所有的Annotation都不会起作用。在上面的例子中,所有的Annotation都不起作用了,但是testMethodA的命名符合TestCase中测试方法的规范,所以该方法还是会被执行,但是由于createTestData没有执行,测试数据没有被创建,方法执行当然会失败。