J'ai configuré des tests unitaires basés sur les données dans ma solution. C'est câblé, tout fonctionne bien, ce sur quoi la plupart des articles et des questions en ligne semblent se concentrer.

Ce que je ne trouve pas, c'est comment je lis les lignes suivantes après la première ligne dans une colonne donnée.

Par exemple, si mon document Excel est configuré comme ceci:

  A    |   B
------ | ------
  A1   |   B1
  A2   |   B2
  A3   |
  A4   |  

Puis de retour dans mon test unitaire, je fais quelque chose comme:

var getValue = TestContext.DataRow["A"];
var getOtherValue = TestContext.DataRow["B"];

Le résultat est que getValue = "A1" et getOtherValue = B1. Si j'essaye de faire quelque chose comme ça à la place:

var getValue = TestContext.DataRow[0];
var getOtherValue = TestContext.DataRow[1];

Les sorties sont toujours exactement les mêmes, ce qui est logique.

Ce que je ne sais pas, c'est comment obtenir la valeur dans A2, A3, B2, etc. De cette façon, je peux tester tous les différents scénarios en les branchant simplement sur Excel.

Pour un autre exemple, si j'ai ce tableau:

 Cost  |  QtyOrdered 
------ | ------------ 
  10   |   10       
  5    |   null
 null  |   2
 null  |   null       

Dans le scénario ci-dessus, je voudrais parcourir toutes les différentes lignes et m'assurer que les valeurs connectées correspondent à ce que j'attends. Je m'attendrais à la première ligne 100, et à chaque ligne supplémentaire, je m'attendrais à un message d'erreur dans mon test unitaire.

Je ne vois pas vraiment l'intérêt des tests unitaires basés sur les données dans Excel si je ne peux pas simplement brancher un tas de données pour plusieurs lignes pour chaque colonne.

0
maxshuty 17 janv. 2017 à 17:01

2 réponses

Meilleure réponse

Faire des tests unitaires basés sur les données comme celui-ci appellera votre méthode une fois pour chaque ligne de votre feuille de calcul. Si tout est correctement câblé, rien d'autre n'est nécessaire.

Je laisse cette question en suspens car je pense que cela pourrait être utile à quelqu'un d'autre dans le futur car il n'était pas immédiatement évident comment cela fonctionnait.

0
maxshuty 17 janv. 2017 à 19:58

Vous pouvez importer les données de votre feuille Excel et exécuter vos tests sur l'ensemble de données résultant à l'aide de boucles ou de tout mécanisme adapté à vos besoins. Personnellement, je préfère ClosedXml en raison de sa convivialité et de sa rapidité. Vous pouvez également utiliser la bibliothèque native Microsoft OLEDB pour le faire. Bonne chance!

0
Prashant Tiwari 17 janv. 2017 à 19:04