統合テスト スイートがあります。IntegrationTestBase
すべてのテストを拡張するためのクラスがあります。この基本クラスには、API および DB 接続を確立するための@Before
( public void setUp()
) および@After
( ) メソッドがあります。public void tearDown()
私がやっていることは、各テストケースでこれら 2 つのメソッドをオーバーライドし、 と を呼び出すことだけsuper.setUp()
ですsuper.tearDown()
。ただし、誰かがスーパーを呼び出すのを忘れたり、間違った場所に配置したりして、例外がスローされ、最後または何かでスーパーを呼び出すのを忘れた場合、これは問題を引き起こす可能性があります。
私がやりたいことは、基本クラスにsetUp
andメソッドを作成し、独自の注釈付きandメソッドを追加することです。いくつかの初期テストを実行すると、常に次の順序で呼び出されるように見えます。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?* }
}