父类有tearUp和tearDown的代码,如果父类方法被子类覆盖(隐藏了)将不被执行,否则先执行父类的tearUp方法,再执行子类的tearUp方法,先执行子类的tearDown方法,再执行父类的tearDown方法。
不推荐测试类继承另一个测试类。
不推荐测试类有多个@Before,多个@After,多个@ BeforeClass,多个@AfterClass。
ParentTestcase.java
FirstChildTestcase.java
SecondChildTestcase.java
执行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]
不推荐测试类继承另一个测试类。
不推荐测试类有多个@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]