TestNg、アノテーション「beforeTestMethod」およびオーバーライド

StackOverflow https://stackoverflow.com/questions/1559343

  •  21-09-2019
  •  | 
  •  

質問

私のテストでは基本クラスを使用しています 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 つのポイント:

  1. 親の設定を行います final 誤ってオーバーライドすることを防ぐため。
  2. 私なら使います @BeforeMethod 注釈。これらは TestNG 5.0 以降で利用可能です。もちろん、強制的に使用した古いバージョンの場合は、 @Configuration.
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top