假设我有以下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
,但这似乎没有帮助。完全可以做我想做的事情吗?
答案 0 :(得分:0)
我担心你必须将someAlgoritmUsedByRunFilesThroughCompiler
提取到一个单独的接口(或抽象类)中,并编写它的不同实现类。
public interface MyAlgorithm {
String someAlgoritmUsedByRunFilesThroughCompiler(...);
}
OwnTestLauncher
中的测试方法然后期望将此接口的实现作为附加参数,您仍然可以通过调整它们来使用数据提供程序。