我必须使用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/

10-09 03:29