2017-04-11 2 views
1

Say j'ai un scénario de test fonctionnel dans example1.feature qui a une étape commeEn utilisant les mêmes étapes cornichon dans plusieurs tests fonctionnels codeception

«J'ai quelque chose dans la base de données »

Dans mon dossier des étapes j'ai l'implémentation de cette étape dans le fichier example1.php.

Dites maintenant que je veux utiliser cette même étape dans exemple2.feature. Je sais que si je n'implémente pas cette étape dans example2.php, il utilisera automatiquement l'implémentation de example1.php.

Mais est-ce recommandé? mettre en œuvre les étapes d'un test dans la classe d'un autre test? Il semblerait que cela brise l'isolation du groupe de test ...

Ou devrais-je copier/coller le code dans example2.php afin que chaque test ait sa propre implémentation des étapes? Semble très sec et un cauchemar de maintenance ...

Ou existe-t-il un autre moyen recommandé pour gérer ce genre de situation, peut-être que toutes les classes d'étapes étendent une classe commune qui définit les étapes à utiliser dans plusieurs tests?

Répondre

0

Est-il possible d'avoir deux implémentations pour la même étape? Dans d'autres saveurs de concombre vous parierez une erreur d'étape ambiguë. L'outil ne sait pas quelle implémentation utiliser.

Si cela est possible avec deux implémentations, alors je ne m'inquiéterais pas du fichier sur lequel une étape est implémentée. Je m'inquiéterais plus d'avoir la même implémentation à deux endroits.

La raison pour laquelle je m'inquiéterais davantage de deux implémentations est qu'il n'y a pas de bon moyen de savoir qu'elles ne dévient pas pendant la maintenance. S'ils s'écartent alors vous vous retrouvez dans une situation où le même pas dans Gherkin signifie deux choses différentes. Ce serait mauvais.