代码之家  ›  专栏  ›  技术社区  ›  tangens

测试、注释“beforetestmethod”和重写

  •  2
  • tangens  · 技术社区  · 15 年前

    对于我的测试,我使用的是一个基类 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 回复  |  直到 15 年前
        1
  •  5
  •   Rorick    15 年前

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

    另外两点:

    1. 我要做父母的安排 final 以防止意外覆盖。
    2. 我会用 @BeforeMethod 注释。从测试5.0开始就可以使用。当然,对于旧版本,您必须使用 @配置 .