@BeforeClass and @AfterClass | @Before and @After | |
出现次数 | 在一个类中只可以出现一次 | 在一个类中可以出现多次,即可以在多个方法的声明前加上这两个Annotaion标签,执行顺序不确定 |
方法名限制 | 方法名不做限制 | 方法名不做限制 |
运行次数 | 在类中只运行一次 | 在每个测试方法之前或者之后都会运行一次 |
执行顺序 | @BeforeClass父类中标识了该Annotation的方法将会先于当前类中标识了该Annotation的方法执行。 @AfterClass 父类中标识了该Annotation的方法将会在当前类中标识了该Annotation的方法之后执行 |
@Before父类中标识了该Annotation的方法将会先于当前类中标识了该Annotation的方法执行。 @After父类中标识了该Annotation的方法将会在当前类中标识了该Annotation的方法之后执行 |
static | 必须声明为public static | 必须声明为public 并且非static |
@After/@AfterClass是否执行 | 所有标识为@AfterClass的方法都一定会被执行,即使在标识为@BeforeClass的方法抛出异常的的情况下也一样会。 | 所有标识为@After 的方法都一定会被执行,即使在标识为 @Before 或者 @Test 的方法抛出异常的的情况下也一样会。 |
跟@Repeat配合 | 只执行一次 | 执行多次 |
※注意:
JUnit4 中@AfterClass @BeforeClass @after @before的区别对比
原文:http://www.cnblogs.com/draenei/p/5103503.html