首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用@factory运行依赖测试方法

使用@factory运行依赖测试方法
EN

Stack Overflow用户
提问于 2015-06-14 17:57:11
回答 1查看 428关注 0票数 0

情景:-

我的测试数据是字符串A2)字符串B3)字符串C

现在我有了类,其中有数据提供程序和工厂,而数据提供程序有3个值作为字符串。

代码语言:javascript
复制
public class TestParent {

    public String tenant;

    @Factory(dataProvider = "myList")
    public TestParent(String s) {
        tenant = s;
    }

    @DataProvider(name = "myList")
    public Object[][] myList() {
        List<String> s = new ArrayList<String>();
        s.add("A");
        s.add("B");
        s.add("C");
        Object[][] objArray = new Object[s.size()][];

        for (int i = 0; i < s.size(); i++) {
            objArray[i] = new Object[1];
            objArray[i][0] = s.get(i);
        }
        return objArray;
    }

    @Test()
    public void setup() {
        System.out.print(tenant);
        System.out.print("\n");
    }

    @Test(dependsonMethod = setup)
    public void beforeclass() {
        System.out.print("Hello");
        System.out.print(tenant);
        System.out.print("\n");
    }

    @Test(dependsonMethod = beforeclass)
    public void afterclass() {
        System.out.print("BYE");
        System.out.print(tenant);
        System.out.print("\n");
    }

    @Test(dependsonMethod = afterclass)
    public void mm() {
        System.out.print("YES");
        System.out.print(tenant);
        System.out.print("\n");
    }
}

我想要的输出

一个

HelloA

比亚迪

YESA

B

HelloB

BYEB

YESB

C

HelloC

BYEC

YESC

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-14 20:12:58

创建两个独立的类FactoryClass和TestDataClass,然后从textng.xml运行FactoryClass

FactoryClass:

代码语言:javascript
复制
public class FactoryClass {

    @Factory(dataProvider = "myList")
    public Object[] createInstances(String str) {
        return new Object[] {new TestData(str)};
    }

    @DataProvider(name = "myList")
    static public Object[][] myList(){
     return new Object[][] {
        new Object[] { new String("A") },
        new Object[] { new String("B") },
      };
    }
} 

TestDataClass:

代码语言:javascript
复制
public class TestData {

    private String tenant;

    public TestData(String s)
    {
        this.tenant=s;
    }

    @Test()
    public void setup( )
    {
        System.out.print(tenant);
        System.out.print("\n");
    }

    @Test(dependsOnMethods="setup")
    public void beforeclass()
    {
        System.out.print("Hello");
        System.out.print(tenant);
        System.out.print("\n");

    }

    @Test(dependsOnMethods="beforeclass")
    public  void afterclass()
    {
        System.out.print("BYE");
        System.out.print(tenant);
        System.out.print("\n");
    }

    @Test(dependsOnMethods="afterclass")
    public  void mm()
    {
        System.out.print("YES");
        System.out.print(tenant);
        System.out.print("\n");

    }

}

XML文件:

代码语言:javascript
复制
<suite name="StackNew" verbose="1">
<test name="test" group-by-instances="true">
    <classes>
        <class name="stack.FactoryClass"></class>
    </classes>
</test>
</suite>

如果您面临序列问题:链接

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

https://stackoverflow.com/questions/30832687

复制
相关文章

相似问题

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