JUNIT4 筆記(四) 測試類——繼承關係執行順序

父類有tearUp和tearDown的代碼,如果父類方法被子類覆蓋(隱藏了)將不被執行,否則先執行父類的tearUp方法,再執行子類的tearUp方法,先執行子類的tearDown方法,再執行父類的tearDown方法。

不推薦測試類繼承另一個測試類。
不推薦測試類有多個@Before,多個@After,多個@ BeforeClass,多個@AfterClass。

ParentTestcase.java

public class ParentTestcase {
@BeforeClass
public static void beforeClass(){
System.out.println("@BeforeClass");
}
@AfterClass
public static void afterClass(){
System.out.println("@AfterClass");
}
@Before
public void before(){
System.out.println("@Before");
}
@After
public void after(){
System.out.println("@After");
}
@Test public void test1() {
System.out.println("@test1");
assertTrue(true);
}
@Test public void test2(){
System.out.println("@test2");
assertEquals(5,2+3);
}
}

FirstChildTestcase.java

public class FirstChildTestcase extends ParentTestcase {
@BeforeClass
public static void beforeClass(){
System.out.println("child @BeforeClass");
}
@AfterClass
public static void afterClass(){
System.out.println("child @AfterClass");
}
@Before
public void before(){
System.out.println("child @Before");
}
@After
public void after(){
System.out.println("child @After");
}
@Test public void test1() {
System.out.println("child @test1");
assertTrue(true);
}
@Test public void test2(){
System.out.println("child @test2");
assertEquals(5,2+3);
}
}

SecondChildTestcase.java

public class SecondChildTestcase extends ParentTestcase {
@BeforeClass
public static void childBeforeClass(){
System.out.println("child @BeforeClass");
}
@AfterClass
public static void childAfterClass(){
System.out.println("child @AfterClass");
}
@Before
public void childBefore(){
System.out.println("child @Before");
}
@After
public void childAfter(){
System.out.println("child @After");
}
@Test public void childTest1() {
System.out.println("child @test1");
assertTrue(true);
}
@Test public void childTest2(){
System.out.println("child @test2");
assertEquals(5,2+3);
}
}

執行FirstChildTestcase
[list=1]
[*]child @BeforeClass
[*]child @Before
[*]child @test1
[*]child @After
[*]child @Before
[*]child @test2
[*]child @After
[*]child @AfterClass
[/list]
執行SecondChildTestcase
[list=1]
[*]@BeforeClass
[*]child @BeforeClass
[*]@Before
[*]child @Before
[*]child @test1
[*]child @After
[*]@After
[*]@Before
[*]child @Before
[*]child @test2
[*]child @After
[*]@After
[*]@Before
[*]child @Before
[*]@test1
[*]child @After
[*]@After
[*]@Before
[*]child @Before
[*]@test2
[*]child @After
[*]@After
[*]child @AfterClass
[*]@AfterClass
[/list]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章