对于我的测试,我正在使用一个基类MyTestBase定义一个setup()做一些基本准备的方法:
public class MyTestBase {
@Configuration( beforeTestMethod=true )
protected void setup() {
// do base preparations
}
}
Run Code Online (Sandbox Code Playgroud)
现在我有一些更具体的测试类,必须做好自己的准备.有多种方法可以实现这一点.
我可以用@Override:
public class MySpecialTestBase extends MyTestBase {
@Override
protected void setup() {
super.setup();
// do additional preparations
}
}
Run Code Online (Sandbox Code Playgroud)
...或者我可以使用单独的设置方法:
public class MySpecialTestBase extends MyTestBase {
@Configuration( beforeTestMethod=true )
protected void setupSpecial() {
// do additional preparations
}
}
Run Code Online (Sandbox Code Playgroud)
有没有一种优先实现方法?
我更喜欢使用@Configuration注释.@Override并且super更脆弱.你可以忘记打电话super.setup(),或在错误的地方打电话.同时,@Configuration如果需要,使用单独的方法可以让您为子设置方法选择更合适的命名,并且您可以获得TestNG(parent,child)保证的设置顺序.
还有两点:
final是为了禁止意外覆盖.@BeforeMethod注释.它们从TestNG 5.0开始提供.当然,对于旧版本,您不得不使用@Configuration.