TestNg,注释“beforeTestMethod”并覆盖

时间:2009-10-13 10:19:15

标签: java testng

对于我的测试,我正在使用基类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
    }
}

是否有首选方法可以实现此目的?

1 个答案:

答案 0 :(得分:5)

我更喜欢使用@Configuration注释。 @Overridesuper更脆弱。您可以忘记拨打super.setup(),或在错误的地方拨打电话。同时,使用@Configuration的单独方法可以让您在必要时为子设置方法选择更合适的命名,并且您可以通过TestNG(父级然后是子级)保证设置顺序。

还有两点:

  1. 我要设置父设置final以禁止意外覆盖。
  2. 我会使用@BeforeMethod注释。它们从TestNG 5.0开始提供。当然,对于旧版本,您不得不使用@Configuration