0
votes

Comment passer la classe de haricots à une méthode de test en test?

J'ai un util Excel qui lit toutes les données de la feuille Excel. La feuille Excel a 10 colonnes comme le temps, le type SourceType, le message, le message, la gravité, LastModify, EntityName, OperationType, Replayid, Enregistrements.

My DataProvider a du code quelque chose comme celui-ci qui renvoie toutes les 10 colonnes et leurs valeurs. xxx

dans mon testmethod, je dois transmettre toutes ces dix colonnes ou autre Ne me permettez pas de courir. Au lieu de cela, je veux créer une classe de haricots et passer quelque chose comme ça à ma méthode de test xxx

}

Comment réalisons-nous cela?


0 commentaires

3 Réponses :


0
votes

Utilisation du DataProvider que vous avez, votre méthode de test fonctionne 10 fois pour chaque objet dans la matrice.

Ce que vous pouvez faire est de créer un objet, de convertir votre DataProvider en cet objet et de l'utiliser votre test Code de méthode. P>

Object myDataHelper = null;

@Test()
public void testGoogleData(BeanClass object) {
myDataHelper = convertDataProviderToObject();
// use it here in a for/for each loop
System.out.println(object.getTid());
}


2 commentaires

Pour votre approche, dans l'annotation de test, nous ne transmettons pas le fournisseur de données. Je veux transmettre mon fournisseur de données à la feuille Excel. La feuille Excel renvoie un objet qui contient 2-D contenant toutes les 10 colonnes de ma feuille Excel. De plus, je veux mapper toutes ces 10 colonnes à un objet de classe de haricot qui devrait à nouveau renvoyer un objet 2D (car les fournisseurs de données permettent l'objet [] [] comme type de retour).


Lorsque vous utilisez DataProvider - il est appelé à chaque élément de la matrice 2-D. Vous devez tromper le système et utiliser un autre objet qui passe sur chaque élément de la matrice. C'est ainsi que le DataProvider utilise-t-il des tests.



0
votes
@DataProvider
public Object[][] getDataFromExcel() throws Exception
{  Object[][] data = Utility.read_excel("Admin_Credentials");//Sheet name
    return data;
} 
@Test(dataProvider="getDataFromExcel")

1 commentaires

J'ai le même code. Le problème est qu'il nécessite que toutes les colonnes soient transmises à ma méthode de test. Je ne peux pas utiliser une classe de haricots et appeler cela comme indiqué, vous avez 10 objets du fournisseur de données et que le test n'appelle qu'un objet.



0
votes

Il est pris en charge dans Extension QAF-TestNG < / a>. Vous pouvez avoir un ou plusieurs objets complexes argument dans votre méthode de test lors de l'utilisation d'un fournisseur de données intégré ou personnalisé. Pour Excel, votre code peut ressembler ci-dessous: xxx

pour le fournisseur de données personnalisé, il peut ressembler ci-dessous: xxx

Vous devez vous assurer Cela, le nom des propriétés de votre classe de haricots doit correspondre aux noms de colonnes (dans n'importe quel ordre). Lorsque vous utilisez un fournisseur de données personnalisé, vous devez renvoyer itérateur pour list de mappe ou objet [] [] [] [] "https:" HTTPS: //github.com/qmemetry/qaf/blob/master/test/src/com/qmetry/qaf/automation/impl/customdataProvider.java "rel =" NOFOollow NOREFERRER "> Quelques exemple si vous souhaitez créer Fournisseur de données personnalisé.


2 commentaires

Cela n'a pas fonctionné avec l'approche 1. Pourriez-vous s'il vous plaît essayer de me le faire savoir? Je reçois une erreur: "Le fournisseur de données tente de passer 3 méthodes, mais la méthode Testergoogledata prend 1. La feuille Excel a 3 colonnes pour nom, TID, e-mail et 1 rang.I a également créé des beans classes qui ont ces 3 membres et respectifs getters et setters.


Peut-être que vous n'utilisez pas QAF 2.1.14. QAF-Exemple-Project est un échantillon de travail que vous pouvez essayez de vous référer.