des tests basés sur des données de concombre
-
20-09-2019 - |
Question
Je dois tester une application de messagerie de routage, dont la fonctionnalité est généralement comme suit: - un message est envoyé à l'application - l'application examine un message - message est transmis quelque part, en fonction du contenu du message
La grande majorité des cas de test sont quasi-identiques; générer un type particulier de message, le charger dans le système, attendez quelques secondes, puis vérifiez la destination nécessaire pour faire en sorte que le message a été transmis correctement.
Au lieu de générer 100s de cas de test quasi identiques dans le concombre, est-il un moyen recommandé pour générer un cas de test, et avoir du cycle à plusieurs reprises à travers tous les (message, required_destination) tuples? Je préférerais que ces tuples maintenus dans un fichier YAML plutôt que d'une base de données, pour faciliter la maintenance, mais soit la solution serait bien.
La solution
Vous devriez essayer Structure du scénario en utilisant Exemples
Scénario normal
Scenario: Login
Given I am on login page
When I enter username "Jonas" and password "secrect" and press login
Then I get redirected to "Jonas Home Page"
Aperçu du scénario
Scenario Outline: Login
Given I am on login page
When I enter username <username> and password <password> and press login
Then I get redirected to <redirect_page>
Examples:
| username | password | redirect_page |
| "Jonas" | "secret" | "Jonas Home Page" |
| "Anna" | "Data" | "Annas Home Page" |
En savoir plus: https://github.com/cucumber/cucumber/wiki/Scenario-Outlines
Autres conseils
Je n'ai pas ce genre de situation dans le concombre, mais j'utiliser des tuyaux en fichiers séparés dans les spécifications pour les tests de données massives, espérons qu'il contribuera à:
Vous pouvez trouver des exemples ici dans la description de DamerauLevenshteinMod et ici read_test_file
Je ne vois pas pourquoi la même approche ne peut pas être utilisé pour le concombre ainsi.