2016-07-13 10 views
0

Ich versuche, eine TestNG-Datenprovider-Methode zu erstellen, die ein Array von Objekten einer benutzerdefinierten Klasse aus meinem Projekt zurückgibt. Dieses Array ist ein eindimensionales Array, und ich möchte aus dieser Datenprovidermethode kein zweidimensionales Array zurückgeben. Bitte schlagen Sie vor, sollte Dataprovider immer ein 2D-Array (nicht weniger als oder mehr als 2D) zurückgeben. Wenn ja, brauche ich Hilfe in der folgenden Zeile:Wie erstellt man eine 1D Dataprovider Methode in TestNG?

return new Objekt [] [] {{user [0]}, {user [1]}, {user [2]}, {user [3]} }

Können wir diese Codezeile in irgendeiner besseren Weise schreiben, weil, wenn in Zukunft dieses Array erweitert werden wird, mehr als 4 Elemente als es haben wir diese vollständige Funktion bearbeiten müssen, können wir Liste usw. nicht verwenden?

Unten ist der Code, den ich bin derzeit mit:

@DataProvider(name = "credentialsProvider", parallel=false) 
public static Object[][] credentialsProvider() throws Exception { 
    User[] user=new User[4]; 
    user[0]=new User(UserTypes.AGENCY_MANAGER,1); 
    user[1]=new User(UserTypes.AGENT,1); 
    user[2]=new User(UserTypes.AGENCY_MODERATOR,1); 
    user[3]=new User(UserTypes.EW_ECS_AGENCY_MANAGER,1); 
    return new Object[][]{{user[0]},{user[1]},{user[2]},{user[3]}}; 
    }; 
} 
+0

i einen Wrapper, die es sehr einfach machen verwenden würde u so etwas wie dieses brauchen? @DataProvider (name = "Kategorie") \t public Object [] [] testCategoryRead() throws Exception { \t \t Rückkehr Anbieter. testDataBuilder() \t \t \t \t .withAttribute ("site", siteUS) .capture() \t \t \t \t .build(); \t} –

Antwort

0

Es gibt einen Grund für die Dataprovider 2D zu sein - heute Sie eine Zeichenfolge, die Sie als Daten zu übergeben wollen, müssen, wenn Sie das passieren haben lassen Wenn Sie ein Benutzerobjekt und ein UserDetails-Objekt an einen Testfall übergeben, benötigen Sie eine Möglichkeit, beides zu übergeben. Daher ist das Einheitsarray im Grunde das, was Sie an den Einzeltest übergeben müssen, und die 2d ist eine Liste solcher Mehrfachdaten.

Warum schleifen Sie nicht einfach über Ihr Benutzer-Array, um die Benutzerobjekte hinzuzufügen, statt über Indizes in einer Zeile zu gehen. Wenn etwas hinzugefügt wird, müssen Sie nur das Benutzerobjekt definieren, die for-Schleife würde dann über die gesamte Länge durchlaufen.

Verwandte Themen