我必须使用dataprovider批注将数组的数组列表发送到测试用例。我有下面的代码,但它给了非法参数异常。我的arraylist大小是4096。我需要在测试方法中提供这么多的参数吗?
@Test(dataProvider="combination_list")
public void checkbox_combination(List<int[]> obj) {
/*for(int i=0;i<=4095;i++) {
}*/
}
@DataProvider(name="combination_list")
public static Object[][] get_Combination_list() {
List<int[]> combinations_with_int_array = new ArrayList<int[]>();
int size_combination;
for(int i=0;i<=4095;i++) {
String checkbox_combination =Combination_List.intToString(i,12);
int[] single_combination = new int[12];
for (int j=0;j<=11;j++) {
if(j<11)
{
single_combination[j]=Integer.parseInt(checkbox_combination.substring(j, j+1));
}
else
{
single_combination[j]=Integer.parseInt(checkbox_combination.substring(j));
}
}
combinations_with_int_array.add(single_combination);
}
size_combination=combinations_with_int_array.size();
System.out.println("No of combinations : "+size_combination);
Object objArray[][] = new Object[size_combination][];
for(int i=0;i<size_combination;i++){
objArray[i] = new Object[1];
objArray[i][0] = combinations_with_int_array.get(i);
}
return objArray;
}
最佳答案
groups_with_int_array是int []的arrayList。
objArray[i][0] = combinations_with_int_array.get(i);
当您进入列表时,它会给您int []这是参数的类型,它将添加到Object [] []中。因此,您的测试方法应具有相同的参数。
关于java - 数据提供程序与Testng中的arrayarraylist,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45751443/