Comment puis-je répétez les étapes dans un Specflow Scénario Contour
En un mot, ce que j'ai besoin est de créer un Scénario de plan avec une étape qui est reproductible sans avoir à les saisir à l'aide de plusieurs ET que je suis en train de faire ci-dessous:
Scenario Outline: outline
Given I am a user
When I enter <x> as an amount
And I enter <x2> as an amount
Then the result should be <result>
Scenarios:
|x|x2|result|
|1|2 |3 |
|1|0 |1 |
Cependant, je voudrais faire quelque chose comme ce qui suit:
Scenario Outline: outline
Given I am a user
When I enter <Repeat: x> as an amount
Then the result should be <result>
Scenarios:
|x |result|
|1,2,3|6 |
|1,2 |3 |
Fondamentalement, je veux que la "je entrer un montant" pour exécuter 3 et 2 fois respectivement.
Le plus proche que j'ai trouvé à cette question est Comment puis-je re-lancer un concombre scénario présenté avec différents paramètres? , mais je voulais vérifier deux fois avant d'abandonner et à l'aide d'un StepArgumentTransformation avec une liste séparée par des virgules ou quelque chose de similaire.
La réponse finale, je suis allé avec est quelque chose de plus comme ceci:
Scenario Outline: outline
Given I am a user
When I enter the following amounts
| Amount1 | Amount 2| Amount3|
| <Amt1> | <Amt2> | <Amt3> |
Then the result should be <result>
Scenarios:
|Amt1 |Amt2 |Amt3 |result|
|1 |2 |3 |6 |
Il ne semble pas être une bonne façon de laisser une valeur vide, mais c'est assez proche de la solution que je cherchais
Vous devez vous connecter pour publier un commentaire.
La
Examples
mot-clé:Est pour quand vous voulez l'intégralité du test de prendre différents paramètres. Il semble que vous voulez nourrir de répéter les paramètres à l'
When
étape.La plus facile qui ne nécessite pas la mise en œuvre d'un
StepArgumentTransformation
est de simplement utiliser un tableau dans le quand:Alors simplement itérer toutes les lignes dans une table pour vos arguments. Cela évite d'avoir une méthode provisoire pour la transformation.
Alternatives comprennent l'utilisation de plusieurs étapes ou par le paramètre de l'analyse, donc, comme vous le dites, utilisez la
StepArgumentTransformation
.Bien sûr, si vous avez besoin de tester plusieurs de répéter les éléments, vous pouvez utiliser les deux
StepArgumentTransformation
etExamples:
d'alimentation dans une virgule-liste de nombres:Vous pourriez être en mesure de faire usage d'une approche patrickmcgraw proposé sur une réponse à ma question:
SpecFlow/Concombre/Cornichon - à l'Aide de tableaux dans un scénario contour
Donc, fondamentalement, vous pouvez prendre l'entrée x comme un fait normal de la chaîne d'entrée split sur un délimiteur dans ce cas,',', puis itérer sur elle de l'exécution de vos actions, à savoir quelque chose comme ci-dessous (je n'ai pas testé ce code).
Cela fonctionne pour moi, et regarde peu plus lisible trop: