2017-08-18 3 views
2

Je dois envoyer une liste de tableaux de tableaux au scénario de test en utilisant l'annotation dataprovider. J'ai le code ci-dessous mais il donne une exception d'argument illégal. Ma taille d'arraylist est 4096. Ai-je besoin de donner autant d'arguments dans la méthode de test.fournisseur de données avec arraylist de tableau dans le test NG

@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; 
} 
+1

Pouvez-vous publier la trace de pile de l'exception? Il peut fournir plus de données. D'après ce que vous avez posté jusqu'à présent, je suppose que int [] et Object [] sont incompatibles. – Assafs

+0

[ERREUR] Les échecs: [ERREUR] com.mavenReports.xsltr.MavenDemo.checkbox_combination (com.mavenReports.xsltr.MavenDemo) [ERREUR] Essai 1: MavenDemo.checkbox_combination »IllegalArgument incompatibilité de type d'argument [ERREUR] Essai 2: MavenDemo.checkbox_combination »IllegalArgument incompatibilité de type argument [eRREUR] Run 3: MavenDemo.checkbox_combination» IllegalArgument incompatibilité de type argument [eRREUR] Run 4: MavenDemo.checkbox_combination »IllegalArgument incompatibilité de type argument – Jay

+0

peut-être parce que vous avez utilisé le symbole "checkbox_combination" dans deux significations différentes dans votre code? Est-ce une chaîne ou une classe qui obtient la liste des tableaux? – Assafs

Répondre

2

combinaisons_with_int_array est une arrayList de int [].

objArray[i][0] = combinations_with_int_array.get(i); 

Lorsque vous faites une figurer sur la liste, il vous donne int [] qui est le type de l'argument, qu'il ajoute à l'objet [] []. Votre méthode de test devrait donc avoir le même argument.