如何使用 TestNG DataProvider 传递 > 10 个参数?

Nav*_*nak 4 java testng testng-dataprovider

我需要将 10 多个参数传递给 TestNG Dataprovider,代码看起来像这样......

@Test (dataProvider = "Dataprovider1")
public void testScenario1(String data1, String data2,
                          String data3, String data4,
                          String data5 //...
            ) throws Exception {
    System.out.println(data1+"---------------- "+data2+" ---------------   "+data3+" .. so on");
}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我,如果我们需要使用 传递超过 10 个参数,我们应该遵循什么方法@DataProvider?还有其他方法来声明测试方法的参数吗?

Bhu*_*yal 6

如果您有相同类型的参数,那么您可以在方法参数中作为数组传递。

@Test (dataProvider = "Dataprovider1")
public void testScenario1(String args [])
            ) throws Exception {
    System.out.println(args[0]+"---------------- "+args[1]+" ---------------   "+args[3]+" .. so on");
}
Run Code Online (Sandbox Code Playgroud)

此外,如果您有不同类型的参数字段,那么您可以在辅助类的帮助下对其进行处理,然后在参数中传递此类的引用。例如:

class Helper {
  String data1;
  String data2;
  String data3;
  Long data4;
  int data5;
  flot data6;
 -----so on------
 ----getter setter and constructor----
}
Run Code Online (Sandbox Code Playgroud)

你的测试班

class Test {
@DataProvider(name="Dataprovider1")
public static Object[][] testData() {
    return new Object[][] {
            { new Helper("hey", "you", "guys" ..... another constructor parameters..) } }
    };

}

@Test (dataProvider = "Dataprovider1")
public void testScenario1(Helper helper) throws Exception {
    System.out.println(helper.data1+"---------------- "+helper.data2+" ---------------   "+helper.data3+" .. so on");
}
}
Run Code Online (Sandbox Code Playgroud)