単体テスト (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) // <-/