首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用testng测试接口实现

用testng测试接口实现
EN

Stack Overflow用户
提问于 2016-07-20 08:38:16
回答 1查看 665关注 0票数 1

TestNG 6.8.8

我有以下界面:

代码语言:javascript
复制
public interface Act1{
    /**
    * Some contract
    */
    public String doAct(String input);
}

以及它的几个实现

代码语言:javascript
复制
public class Act1Impl1 implements Act1{
   //...
}

public class Act1Impl2 implements Act1{
   //...
}

问题是有一些实现必须遵循的通用契约,我想在一个单独的测试类中为这个公共功能编写一个测试,如下所示:

代码语言:javascript
复制
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 不适合?因为(据我所知)它的主要目的是支持滴滴涕,因此为测试一个单元提供了不同的数据集。但在我的例子中,我在相同的数据集中测试不同的单元。

我如何才能用TestNG正确地做到这一点。在JUnit中,我们有@RunWith和参数化测试,如https://stackoverflow.com/a/6724555/3663882所示

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-20 09:28:50

您可以通过这样的数据提供者来实现这一点,因为您的数据是接口的不同实现。与实际数据不同,代码就是您的数据:)。

您可以查看testng 工厂 --实现了相同的功能,但是您可能会有这样的感觉--“在相同的数据集上测试不同的单元”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38476308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档