有没有办法在一个测试类之外使用TestNG DataProvider?

时间:2016-07-22 15:58:57

标签: testing testng

如果每个测试使用自己的DataProvider,TestNG测试类会变得非常臃肿。无论如何从另一个Java类导入这些(即:已经声明了常量的那个)?我找不到任何现有的文档。

1 个答案:

答案 0 :(得分:2)

您可以在另一个类(不在同一个具有测试方法的类中)中创建数据提供者,如下所示,并使用Test annotation中的dataProviderClass引用它

import org.testng.annotations.DataProvider;

public class DataProviderClass  { //Data Provider class

    @DataProvider(name = "data-provider")
    public static Object[][] dataProviderMethod() {
      return new Object[][] { { "1" }, { "2" } };
    }
}

TestClass.java

import org.testng.annotations.Test;

public class TestClass {

     @Test(dataProvider = "data-provider", dataProviderClass = DataProviderClass.class)
     public void testMethod(String data) {
        System.out.println("Data is: " + data);
     }
}