不推薦測試類繼承另一個測試類。
不推薦測試類有多個@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]