繁体   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