TestNg、アノテーション「beforeTestMethod」およびオーバーライド
質問
私のテストでは基本クラスを使用しています MyTestBase
メソッドの定義 setup()
これはいくつかの基本的な準備を行います。
public class MyTestBase {
@Configuration( beforeTestMethod=true )
protected void setup() {
// do base preparations
}
}
ここで、独自の準備を行う必要がある、より具体的なテスト クラスがいくつかあります。これを実装するにはさまざまな方法があります。
使えるよ @Override
:
public class MySpecialTestBase extends MyTestBase {
@Override
protected void setup() {
super.setup();
// do additional preparations
}
}
...または、別のセットアップ方法を使用することもできます。
public class MySpecialTestBase extends MyTestBase {
@Configuration( beforeTestMethod=true )
protected void setupSpecial() {
// do additional preparations
}
}
これを実装するための好ましい方法はありますか?
解決
使用することを希望します @Configuration
注釈。 @Override
そして super
より壊れやすいです。電話するのを忘れることもある super.setup()
, 、または間違った場所で呼び出します。一方、別のメソッドを使用すると、 @Configuration
必要に応じて、子セットアップ メソッドにより適切な名前を選択でき、TestNG によってセットアップ順序が保証されます (親、子)。
さらに 2 つのポイント:
- 親の設定を行います
final
誤ってオーバーライドすることを防ぐため。 - 私なら使います
@BeforeMethod
注釈。これらは TestNG 5.0 以降で利用可能です。もちろん、強制的に使用した古いバージョンの場合は、@Configuration
.
所属していません StackOverflow