簡體   English   中英

TestNg,注釋“ beforeTestMethod”並覆蓋

[英]TestNg, annotation “beforeTestMethod” and override

對於我的測試,我使用基類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批注。 @Overridesuper更脆弱。 您可以忘記調用super.setup()或在錯誤的地方調用它。 同時,將單獨的方法與@Configuration可讓您在必要時為子設置方法選擇更合適的命名,並獲得TestNG保證的設置順序(父先子)。

還有兩點:

  1. 為了避免意外覆蓋,我將使父設置final
  2. 我會使用@BeforeMethod批注。 從TestNG 5.0開始可用。 當然,對於舊版本,您不得不使用@Configuration

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM