単体テスト(TestNG 5.10)のベースとして使用する抽象基本クラスがあります。このクラスでは、テスト用の環境全体を初期化したり、データベースマッピングを設定したりしています。この抽象クラス@BeforeClass
には、初期化を行う注釈付きのメソッドがあります。
次に、そのクラスを、@Test
メソッドとメソッドを持つ特定のクラスで拡張し@BeforeClass
ます。これらのメソッドは、環境のクラス固有の初期化を行います(たとえば、いくつかのレコードをデータベースに入れます)。
@BeforeClass
アノテーション付きメソッドの特定の順序を強制するにはどうすればよいですか?抽象基本クラスからのものを拡張クラスの前に実行する必要があります。
例:
abstract class A {
@BeforeClass
doInitialization() {...}
}
class B extends A {
@BeforeClass
doSpecificInitialization() {...}
@Test
doTests() {...}
}
予想される注文:
A.doInitialization
B.doSpecificInitialization
B.doTests
実際の注文:
B.doSpecificInitialization // <- crashes, as the base init is missing
(A.doInitialization // <---not executed
B.doTests) // <-/