83 lines
3.1 KiB
Markdown
83 lines
3.1 KiB
Markdown
# 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
|