2

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

有没有首选的方法来实现这一点?

4

1 回答 1

5

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

还有两点:

  1. 我会进行父设置final以禁止意外覆盖。
  2. 我会使用@BeforeMethod注释。它们从 TestNG 5.0 开始可用。当然,对于旧版本,您被迫使用@Configuration.
于 2009-10-13T10:43:02.010 回答