TestNG 6.8.8
我有以下界面:
public interface Act1{
/**
* Some contract
*/
public String doAct(String input);
}
及其几个实现
public class Act1Impl1 implements Act1{
//...
}
public class Act1Impl2 implements Act1{
//...
}
问题是有些一般合同必须遵循实施,我想在单独的测试类中编写这个常用功能的测试,如下所示:
public class CommonAct1Test{
@Test
public void test_Case1(){
Act1 act1;
//test act1 case 1
}
@Test
public void test_Case2(){
Act1 act1;
//test act1 case 2
}
}
这里的问题是,将来可以添加Act1
的其他实现。所以,我需要一种方法来轻松地将这些实现添加到测试中。
为什么我认为@DataProvider
不适合 ?
因为(据我所知)其主要目的是支持DDT,因此提供不同的数据集来测试单个单元。但在我的情况下,我在同一数据集上测试不同的单位。
我怎么能用TestNG正确地做到这一点。在JUnit
我们有@RunWith
和参数化测试,如this asnwer
答案 0 :(得分:1)
您可以通过dataprovider实现此目的,因为您的数据是接口的不同实现。恰好这样而不是实际数据,代码就是你的数据:)。
你可以看看testng Factory - 实现同样的目的,但可能你会得到你想要的感觉 - “在同一数据集上测试不同的单位”