在Junit4中,有@BeforeClass,@AfterClass,@Before,@After,再加上java的静态初始化器(static{})、非静态初始化器({}),所以如果有继承,就会比较麻烦。
一. 基本执行顺序如下:
1. 父类的静态初始化器
2. 父类的@BeforeClass
3. 子类的静态初始化器
4. 子类的@BeforeClass
5. 父类的非静态初始化器
6. 子类的非静态初始化器
7. 父类的@Before
8. 子类的@Before
9. 执行测试@Test
10. 子类的@After
11. 父类的@After
12. 子类的@ AfterClass
13. 父类的@ AfterClass
注意:如果方法名称相同,也就是如果是@override了父类的方法,那么父类的方法就不会再起作用。
二. 示例
1. 父类
-
public class ChildTest extends ParentTest{
-
-
//静态初始化
-
static {
-
System.out.println("3. Child static{}");
-
}
-
-
//非静态初始化
-
{
-
System.out.println("6. Child {}");
-
}
-
-
@BeforeClass
-
public static void beforeChild() {
-
System.out.println("4. Child Before Class!");
-
}
-
-
@AfterClass
-
public static void afterChild() {
-
System.out.println("12. Child After Class!");
-
}
-
-
@Before
-
public void befChild() {
-
System.out.println("8. Child @Before!");
-
}
-
-
@After
-
public void aftChild() {
-
System.out.println("10. Child @After!");
-
}
-
-
@Test
-
public void test1() {
-
System.out.println("9.1 Child @Test1! //执行测试");
-
}
-
-
@Test
-
public void test2() {
-
System.out.println("9.2 Child @Test2! //执行测试");
-
}
-
}
2. 子类
-
public class ParentTest {
-
-
//静态初始化
-
static {
-
System.out.println("1. Parent static{}");
-
}
-
-
//非静态初始化
-
{
-
System.out.println("5. Parent {}");
-
}
-
-
@BeforeClass
-
public static void before() {
-
System.out.println("2. Parent Before Class!");
-
}
-
-
@AfterClass
-
public static void after() {
-
System.out.println("13. Parent After Class!");
-
}
-
-
@Before
-
public void bef() {
-
System.out.println("7. Parent @Before!");
-
}
-
-
@After
-
public void aft() {
-
System.out.println("11. Parent @After!");
-
}
-
}
3. 输出结果
//静态区
1. Parent static{}
2. Parent Before Class!
3. Child static{}
4. Child Before Class!
5. Parent {}
6. Child {}
7. Parent @Before!
8. Child @Before!
9.1 Child @Test1! //执行测试
10. Child @After!
11. Parent @After!
5. Parent {}
6. Child {}
7. Parent @Before!
8. Child @Before!
9.2 Child @Test2! //执行测试
10. Child @After!
11. Parent @After!
//静态区
12. Child After Class!
13. Parent After Class!
希望对大家能有所帮助。
阅读(2682) | 评论(0) | 转发(0) |