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