Les scénarios que vous avez écrit sont assez bas niveau. À moins que vous ne produisiez une fonctionnalité de connexion sécurisée à vendre, je m'en tiendrai au cas heureux et au test de l'unité/manuel pour le reste. Si vous ne le faites pas, vous créerez tellement de scénarios que ce sera un cauchemar de maintenance.
Découvrez ce qui différencie le produit que vous créez de tous les produits similaires, puis ciblez-le comme valeur du scénario. Ensuite, il ressemblera à ceci:
Given Fred is logged in
When Fred <does something>
Then Fred should <get some really differentiating value>
And <something else happens>
bâton aux capacités vraiment de haut niveau, plutôt que des mesures basées sur des formulaires bas niveau. Par exemple:
Given there is already a question on BDD and Cucumber
Given Peyote is logged in
When Peyote proposes a question on BDD and Cucumber
Then Peyote should see other questions on BDD and Cucumber.
Il y a un concept appelé « page paradigme », dans lequel vous créez une classe avec toutes les étapes de bas niveau que la page ou de l'écran peuvent effectuer. Vous pouvez ensuite appeler ces étapes de bas niveau sur la page depuis les appareils d'étape du concombre de niveau supérieur.
Votre entreprise sera beaucoup plus engagée avec des scénarios comme celui-ci. L'objectif principal de BDD n'est pas de produire des tests automatisés, mais d'avoir des conversations autour des scénarios afin de savoir où vous allez mal et quelles autres options vous pourriez envisager avant de vous lancer dans la mise en œuvre du code. Les tests automatisés sont un bon sous-produit. Les conversations et l'apprentissage que vous obtenez en discutant avec eux sont les éléments qui différencient BDD de ATDD (Acceptance Test Driven Development). C'est pourquoi nous utilisons un langage comme Exemple, Scénario, Donné, Quand, Alors, Contexte, Événement, Résultat au lieu de Test, SetUp, TearDown, Agir, Réorganiser, Affirmer - pour que nous puissions parler de ces choses avec les affaires, BA et testeurs dans la même langue. Voir Dan North's article on Deliberate Discovery et le reste de son blog pour plus, et bonne chance avec le BDD!