# 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