JUNIT 4 노트(4)테스트 클래스-상속 관계 실행 순서

3623 단어 자바
부모 클래스 는 tearUp 과 tearDown 의 코드 가 있 습 니 다.부모 클래스 방법 이 하위 클래스 에 덮어 쓰 면 실행 되 지 않 습 니 다.그렇지 않 으 면 부모 클래스 의 tearUp 방법 을 먼저 실행 한 다음 에 하위 클래스 의 tearDown 방법 을 실행 하고 부모 클래스 의 tearDown 방법 을 실행 합 니 다.
테스트 클래스 가 다른 테스트 클래스 를 계승 하 는 것 을 추천 하지 않 습 니 다.
테스트 클래스 에 여러 개의@Before,여러 개의@After,여러 개의@Beforeclash,여러 개의@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);
	}
}

First ChildTestcase 실행
  • child @BeforeClass
  • child @Before
  • child @test1
  • child @After
  • child @Before
  • child @test2
  • child @After
  • child @AfterClass
  • SecondChildTestcase 실행
  • @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
  • 좋은 웹페이지 즐겨찾기