formats
Publié le 18 mars 2013, par dans Behat.

Une des premières erreurs que j’ai pu faire en utilisant Behat est d’avoir fait des scénarios à rallonge qui n’en finissent plus.

Pourquoi j’ai commis cette erreur ?

Etant donné que je teste un logiciel, l’utilisateur doit être connecté pour pouvoir utiliser le logiciel. J’ai alors un scénario « background » qui est automatiquement lancé avant chaque scénario. Mais cela veut dire que je perds environ 10 secondes à chaque scénario.

Il me semble avoir lu que l’on peut installer des sessions PHP qui perdurent d’un scénario à l’autre, mais je n’ai pas pris le temps de chercher dans ce sens.

Pourquoi cela est une erreur ?

Lorsque Behat rencontre une erreur dans un scénario (un texte non trouvé sur la page, un lien non cliquable…), il arrête l’exécution de ce scénario et passe automatiquement au suivant. Ce qui veut dire qu’il est difficile de voir rapidement quels sont les points de blocage pour un scénario donné, et surtout de voir tout de suite quels sont les points à corriger.

Plus concrètement

Par exemple, je devais tester les fonctionnalités liées à la gestion de factures de vente dans notre gestion commerciale. J’ai donc créé un scénario où :

- Je crée une facture
- Je vais sur la liste des factures
- Je la modifie
- Je valide ma facture
- J’enregistre un paiement

Ce qui aboutissait donc en un scénario qui faisait plusieurs dizaines d’étapes.
Il aurait été plus malin pour moi de créer un scénario quasiment pour chacune des étapes ci dessus, et lors de l’exécution des tests, je peux facilement voir si simplement la validation de la facture ne se fait pas correctement et donc m’atteler à corriger ce point.

De plus, une fois que vous aurez des scénarios bien séparés, vous pourrez plus facilement tester une seule fonctionnalité de votre application.