From 362459662c70ac471edd5c30bc2edaf8ae4e248b Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Mon, 7 Oct 2024 10:37:45 +0200 Subject: [PATCH] doc: add TD3 report --- td3_rapport.md | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 td3_rapport.md diff --git a/td3_rapport.md b/td3_rapport.md new file mode 100644 index 0000000..e0136f2 --- /dev/null +++ b/td3_rapport.md @@ -0,0 +1,83 @@ +# TD3 - Tests + +Rendre un document avec les réponses aux questions de ce TD + +Installer nodeJS, NPM pour la suite + +1. Cloner https://github.com/jleveau/M2-Workshops.git (petite application qui permet de créer un atelier & afficher les ateliers créés) +2. Installer et lancer le code (au besoin, lisez l'énoncé de https://github.com/xblanc33/cdp-td/blob/master/td4_code.md) + +## 3. Ecrire en Gherkin des scénarios de tests couvrant: + +### la création d'un atelier + +#### Scénario A.1 + +> Lorsque qu'un utilisateur décide de créer un atelier, +> Quand il appuie sur le bouton *Ajouter un atelier* +> Alors une requete `GET` vers `workshop` renvoie un code HTTP `200` +> Et le formulaire d'ajour d'atelier est affiché + +#### Scénario A.2 + +> Lorsque qu'un utilisateur se trouve sur la page d'ajout d'atelier, +> Quand il appuie sur le bouton *Annuler* +> Alors il reviens sur la page d'accueil +> Et aucune donnée est enregistrée + +#### Scénario A.3 + +> Étand donné qu'un utilisateur valide le formulaire d'ajout d'atelier +> Quand il clique sur le bouton *Enregistrer* +> Et que le champs *Name* est vide +> Alors Un message d'erreur est affiché +> Et l'utilisateur reste sur la page en cours + +#### Scénario A.4 + +> Étand donné qu'un utilisateur valide le formulaire d'ajout d'atelier +> Quand il clique sur le bouton *Enregistrer* +> Et que le champs *Description* est vide +> Alors Un message d'erreur est affiché +> Et l'utilisateur reste sur la page en cours + +#### Scénario A.5 + +> Étand donné qu'un utilisateur valide le formmulaire d'ajout d'atelier +> Quand il clique sur le bouton *Enregistrer* +> Et que les champs *Name* et *Description* sont specifiés +> Alors L'utilisateur est redirigé sur la page d'accueil +> Et les données sont enregistrés +> Et L'atelier est ajouté en premier à la liste visible sur la page d'accueil + +### L'affichage de la liste des ateliers + +#### Scénario B.1 + +> Losque qu'un utilisateur arrive sur la page d'accueil +> Quand aucun atelier n'est défini +> Alors seul le bandeau titre et le bouton *Create new workshop* sont affichés + +#### Scénario B.1 + +> Losque q'un utilisateur arrive sur la page d'accueil +> Quand un ou plusieurs ateliers sont enregistrés +> Alors il sont affichés en dessous du bouton +> Et dans l'ordre de création + +## Implémenter les scénari que vous aurez décrits (3.) en Selenium (http://docs.seleniumhq.org/, http://en.wikipedia.org/wiki/List_of_web_testing_tools) + +Pour la mise en place de mes test, j'ai choisi d'utiliser le langage *Python*, +*unittest* présent dans la bibliothèque standard et lrd binding Python pour +*Selenium*. + +J'ai utilisé le *driver* Selenium pour le navigateur Firefox pour la mise en +place des tests. + +Afin de faciliter le lancement de mes tests, et d'être sûr d'avoiur un +environement vierge à chaque exécution, les environnements sont lancés par un +[Taskfile](https://taskfile.dev). + +(Optionnel) L'outil de gestion des ateliers proposé ci-dessus ne plaît pas au client, il va falloir en réaliser un autre. + +1. Utiliser Figma (https://www.figma.com/) pour proposer une nouvelle maquette de l'outil de gestion des ateliers2. Adapter les scénari de tests écrits en Gherkin à cette nouvelle maquette