对于我的测试,我使用基类 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归因
不隶属于 StackOverflow
scroll top