統合テストスイートがあります。IntegrationTestBase
すべてのテストを拡張するためのクラスがあります。この基本クラスには、APIおよびDB接続を確立するための@Before
(public void setUp()
)および@After
(public void tearDown()
)メソッドがあります。私が行ってきたことは、単に各テストケースでは、これら2つのメソッドをオーバーライドして呼んでいる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
?