Utilisation de variables dans le Concombre fichiers de Fonctionnalité?
Mon équipe est de tester une API REST en utilisant le Concombre. Les étapes à faire des appels à l'API tandis que les scénarios ont des choses comme "Donné-je faire appel à XXX avec JSON YYY".
Serait-il très mauvaise pratique pour définir JSON variables dans le fond de la fonctionnalité des fichiers, et de les manipuler/les utiliser pour les différents scénarios? La plupart de nos tests sont en utilisant les mêmes objets JSON avec seulement 1-3 édité éléments. Je voudrais faire quelque chose comme cela pour un scénario de:
Given I update J element to K value in JSON YYY As <NewJsonVariable>
...
Cela semble être une mauvaise pratique depuis le Concombre est elle-même discutable outil pour le REPOS de l'API de test, mais maintenant, je suis désireux de mettre des variables dans le mélange pour la fonctionnalité. Cependant, j'ai quelques fonctionnalités qui sont 5-10k lignes (découpé en plusieurs fichiers) et j'estime que j'ai pu obtenir ce jusqu'à 500-1k lignes et de le rendre BEAUCOUP plus lisible. La seule chose, c'est que le test de l'écrivain/lecteur doit garder JSON variables dans leur tête, mais les tests sont assez court qu'il n'y aurait que 2 ou 3 variables à la fois.
J'ai été en utilisant le Concombre d'environ 3 mois. Notre base de code est en Java, mais nous avons de Concombre avec Ruby tests de tous nos services REST. Tous les développeurs sont l'écriture, le Concombre tests puisque nous n'avons pas un officiel de l'équipe QA, et j'aimerais le rendre plus facile pour nous.
Vous souhaitez lire une partie de la documentation y relative à la BDD et le Concombre en particulier. Vous pouvez regarder ceci: github.com/cucumber/cucumber/wiki/Cucumber-Backgrounder qui est mon point de vue sur le sujet. Fondamentalement, vous cuking tromper", pour reprendre la phrase: elabs.se/blog/15-tu-re-cuking-il-faux.
Pour le rendre plus facile sur vous-même vous avez besoin à l'étape de retour à partir de votre approche et de tenir compte de la valeur de Concombre est censé apporter à votre projet. La production de 1K en ligne de fichiers de fonctionnalité est une assez bonne idée que votre équipe n'est pas au point.
C'est drôle que dès que vous vous demandez comment faire quelque chose qui n'est pas possible, les gens commencent à interroger votre motivation; disant que vous n'en connaît pas l'outil.
OriginalL'auteur user1097108 | 2015-11-24
Vous devez vous connecter pour publier un commentaire.
Le point de Concombre est de permettre aux anglais de l'expression de CE qui est censé se produire dans chaque scénario à l'intérieur de la fonction fichier. COMMENT cela se est élaboré à l'étape de fichiers. Vous mettez beaucoup trop de détails dans votre fonction consolidés. Cela va être un cauchemar à maintenir de sorte qu'il ne sera probablement pas. Avec prévisible des résultats.
Un scénario devrait probablement aller quelque chose comme ceci:
Dans l'étape des fichiers que vous ne le configurer avec le comparateur de:
La demande est spécifié dans le comparateur de:
Et les résultats sont vérifiés dans le comparateur de:
Depuis le passage de variables d'instance, autour de bon gré mal gré, directement entre les méthodes n'est pas considéré comme une bonne forme, vous devez définir des méthodes accesseur dans votre démarche de fichiers à traiter dans une mode élégante.
Mettre les tests qui sont utilisés dans de multiples endroits à l'intérieur de leurs propres méthodes et réussir dans ce que vous souhaitez vérifier, comme un argument.
Détaillées de tous les trucs que vous êtes en train de mettre dans votre fonction à la place les fichiers doivent être placés à l'intérieur de la
do-end
blocs qui suivent le rapprochement ou dans les méthodes d'aide (commecheck_result
etresult_set
). Cela rend la compréhension de ce que vos scénarios sont censés accomplir beaucoup plus clair pour le lecteur et cela va vous aider à simplifier vos démarches.OriginalL'auteur James B. Byrne
Le concombre est un outil pour faire des BDD pas un outil de test, et en particulier pas un outil pour faire des exhuastive tests. Pour le type de tests que vous faites, vous seriez beaucoup mieux à l'aide d'une unité de l'outil de test comme RSpec. Parce que les tests unitaires/specs sont écrites dans un langage de programmation de ses un jeu d'enfant pour ajouter des variables, des boucles, etc. de faire beaucoup de tests.
La raison pour écrire des fonctionnalités/scénarios est de décrire le comportement, c'est à dire ce que vous faites, et peut-être plus important encore, pourquoi vous le faites. Vos scénarios n'avez pas vraiment le faire, au lieu qu'elles documentent, dans le détail, comment vous pourriez utiliser votre api. Pour utiliser le Concombre pour développer votre api, vous devez être d'écrire des scénarios beaucoup plus de manière abstraite, par exemple
Noter comment ce scénario n'a aucun détail, que ce soit sur la façon dont le livre est créé, aucune mention de l'json, pas même une mention d'une api.
TL/DR le transfert de vos scénarios existants à une unité de l'outil de test et d'introduire des variables, des boucles. Vous ne pouvez pas/shoudn pas de "programme" dans les fichiers de fonctionnalité.
OriginalL'auteur diabolist