可以在TestNG测试套件中使用继承吗?

时间:2011-04-11 07:46:51

标签: java unit-testing testing testng

假设我有以下TestNG测试类:

public class OwnTestLauncher  {
    @Test(dataProvider = "valid-provider")
    public void validSintax(Collection<File> files) throws PlooException {
        runFilesThroughCompiler(files);
    }

    @Test(dataProvider = "invalid-provider")
    public void invalidSintax(Collection<File> files) throws PlooException {
        runFilesThroughCompiler(files);
    }

        protected String someAlgoritmUsedByRunFilesThroughCompiler(...) { ... }

        ...
}

然后我想创建一些略有不同的套装,所以我可以在不同的场合运行它们中的每一个:

public class SomeOtherFlavour extends OwnTestLauncher {
    @Override
    protected String someAlgoritmUsedByRunFilesThroughCompiler(files) { ... }
}

我已尝试运行上面显示的代码,但它无效。我还尝试使用SomeOtherFlavour注释@Test,但这似乎没有帮助。完全可以做我想做的事情吗?

1 个答案:

答案 0 :(得分:0)

我担心你必须将someAlgoritmUsedByRunFilesThroughCompiler提取到一个单独的接口(或抽象类)中,并编写它的不同实现类。

public interface MyAlgorithm {
    String someAlgoritmUsedByRunFilesThroughCompiler(...);
}

OwnTestLauncher中的测试方法然后期望将此接口的实现作为附加参数,您仍然可以通过调整它们来使用数据提供程序。