Skip to content
Aurélien Bénel edited this page Apr 9, 2020 · 7 revisions

Expérimenter les tests automatisés d'interfaces utilisateurs

Dans cette section, vous allez devoir indiquer comment tester les différentes étapes d'un scénario (ce que vous n'aviez pas eu à faire dans le scénario précédent puisque vous aviez copié-collé toutes les étapes d'un autre scénario en changeant seulement les données).

Maintenant que vous avez bien compris le cycle du TDD, nous pouvons nous en écarter temporairement : nous allons tester une fonctionnalité existante (#33:Assign a new topic to an item). Cela vous permettra de voir tout de suite si vos tests sont bien écrits.

  1. Créez une nouvelle branche feature-33 à partir de la branche maître (v7) :

    git checkout v7
    git checkout -b test-33
    
  2. Faites une copie de features/attribute_set.feature en tant que features/topic_assign.feature. Ne gardez qu'un seul scénario et adaptez le pour décrire l'item non plus avec un attribut mais avec une rubrique existante (par exemple Monture en chef d'œuvre du point de vue Histoire de l'art). Pour éviter un petit bug de Cucumber, remplacez dans les textes les apostrophes droites ' par des apostrophes courbes .

  3. Lancez le test :

     cucumber features/topic_assign.feature
    

    Les étapes déjà définies sont exécutées. Par contre, Cucumber vous donne le squelette des deux étapes à définir.

  4. Pour le Alors :

    • Copiez le squelette du Alors dans features/step_definition/outcome.rb,
    • Remplacez le nom du paramètre (|string|) pour qu'il soit plus explicite (|topic|),
    • Cherchez s'il n'y a pas une étape existante qui serait synonyme, vérifiez que les opérations Capybara correspondent bien à la manière la plus simple de vérifier le résultat,
    • Supprimez donc le squelette que vous avez ajouté et modifiez la dernière étape de votre scénario pour réutiliser l'étape existante.
  5. Pour le Quand :

    • Copiez le squelette du Quand dans features/step_definition/event.rb,
    • Remplacez les noms des paramètres (|string, string|) pour qu'ils soient plus explicites,
    • Il n'y a pas d'étape synonyme... Par contre l'ajout d'une rubrique ressemble un peu à l'ajout d'un attribut. Copiez l'étape et adaptez la.
    • Lancez le test. Ça semble fonctionner cependant faites le test à la main. À quelle étape, vous arrêtez-vous ?
    • Corrigez le Alors en étant plus précis. Vérifiez que le test échoue.
    • Ajoutez une action à votre scénario. Vérifiez que le test réussit.
    • Bravo ! Faites de votre test une contribution, publiez la et demandez son intégration.
    • Vous pouvez comparer votre solution avec le corrigé fourni.