통합 테스트 스위트가 있습니다. IntegrationTestBase
모든 시험을 연장 할 수있는 수업이 있습니다. 이 기본 클래스에는 API 및 DB 연결을 설정 하는 @Before
( public void setUp()
) 및 @After
( public void tearDown()
) 메소드가 있습니다. 내가 해왔 단지 각 테스트 케이스에서 그 두 가지 방법을 무시하고 호출 super.setUp()
하고 super.tearDown()
. 그러나 누군가가 수퍼에게 전화하는 것을 잊거나 잘못된 장소에두면 예외가 발생하고 마지막으로 또는 뭔가를 슈퍼라고 부르는 것을 잊어 버린 경우 문제가 발생할 수 있습니다.
내가하고 싶은 것은 만들 것입니다 setUp
및 tearDown
기본 클래스의 메소드를 final
다음 단지 우리 자신의 주석 추가 @Before
및 @After
방법을. 초기 테스트를 수행하면 항상 다음 순서로 호출되는 것으로 보입니다.
Base @Before
Test @Before
Test
Test @After
Base @After
하지만 주문이 보장되지 않아 문제가 발생할 수 있다고 우려합니다. 나는 둘러 보았고 주제에 대해 아무것도 보지 못했습니다. 내가 할 수 있고 문제가 없는지 아는 사람이 있습니까?
암호:
public class IntegrationTestBase {
@Before
public final void setUp() { *always called 1st?* }
@After
public final void tearDown() { *always called last?* }
}
public class MyTest extends IntegrationTestBase {
@Before
public final void before() { *always called 2nd?* }
@Test
public void test() { *always called 3rd?* }
@After
public final void after() { *always called 4th?* }
}
MyTest
누락extends
?