« LeSS - Tests unitaires » : différence entre les versions
De Wiki Agile
m Ajout encadré |
|||
| (5 versions intermédiaires par 2 utilisateurs non affichées) | |||
| Ligne 6 : | Ligne 6 : | ||
---- | ---- | ||
Traducteur : Nicolas Mereaux<br /> | Traducteur : Nicolas Mereaux<br /> | ||
Relecteur : Fabrice Aimetti<br /> | |||
Date : 29/06/2022<br /> | Date : 29/06/2022<br /> | ||
---- | ---- | ||
| Ligne 133 : | Ligne 134 : | ||
Identique au schéma '''AAA''', le '''BDD''' utilise trois mots-clés différents pour spécifier chaque cas de test : '''Étant donné''', '''Lorsque''' et '''Alors'''. (Vous pouvez aussi utiliser '''Et''' comme mot-clé supplémentaire) | Identique au schéma '''AAA''', le '''BDD''' utilise trois mots-clés différents pour spécifier chaque cas de test : '''Étant donné''', '''Lorsque''' et '''Alors'''. (Vous pouvez aussi utiliser '''Et''' comme mot-clé supplémentaire) | ||
<pre> | |||
Given / Étant donné que la longueur du texte pour le retour à la ligne est défini à 10 | Given / Étant donné que la longueur du texte pour le retour à la ligne est défini à 10 | ||
And / Et que le caractère '-' est utilisé comme connecteur entre deux mots | And / Et que le caractère '-' est utilisé comme connecteur entre deux mots | ||
| Ligne 139 : | Ligne 141 : | ||
Comme vous pouvez le constater, le triptyque "étant donné - lorsque - alors" s'allie plutôt bien avec le triptyque "Arrange - Act - Assert". Ils définissent tous les deux un état transition d’une machine à état finie. Vous pouvez en savoir plus en consultant cet article d’[https://sites.google.com/site/unclebobconsultingllc/the-truth-about-bdd Oncle Bob]. Voici quelques différences entre les deux : | Comme vous pouvez le constater, le triptyque "étant donné - lorsque - alors" s'allie plutôt bien avec le triptyque "Arrange - Act - Assert". Ils définissent tous les deux un état transition d’une machine à état finie. Vous pouvez en savoir plus en consultant cet article d’[https://sites.google.com/site/unclebobconsultingllc/the-truth-about-bdd Oncle Bob]. Voici quelques différences entre les deux : | ||
* Le BDD est davantage orienté "dehors vers dedans", cela veut dire qu’il met davantage l’accent sur le comportement externe | |||
* Avec le BDD, vous devez définir un '''langage spécifique au domaine''' pour écrire vos spécifications de tests. À cause de cela, vous aurez besoin généralement d’un ''framework'' supplémentaire. Par exemple, pour Python vous pourrez utilisez [https://pypi.org/project/behave/ behave]. | |||
* Le BDD est davantage | |||
* Avec le BDD, vous devez définir un '''langage spécifique au domaine''' pour écrire vos spécifications de tests. À cause de cela, vous aurez besoin généralement d’un ''framework'' supplémentaire. Par exemple, pour Python vous pourrez utilisez [ | |||
=== La règle d’or du test unitaire === | === La règle d’or du test unitaire === | ||
De manière générale, une bonne règle d’or pour des tests unitaires serait : | De manière générale, une bonne règle d’or pour des tests unitaires serait : | ||
'''Chaque cas de test unitaire devrait comporter un périmètre très restreint.''' | |||
De telle manière que : | De telle manière que... : | ||
* Lorsque le test échoue, qu’il ne soit pas nécessaire de faire du déboggage pour localiser le problème. | * Lorsque le test échoue, qu’il ne soit pas nécessaire de faire du déboggage pour localiser le problème. | ||
* Les tests soient stables car les dépendances sont limitées. | * Les tests soient stables car les dépendances sont limitées. | ||
* Il y ait moins de duplications, que ce soit plus facile à maintenir | * Il y ait moins de duplications, que ce soit plus facile à maintenir. | ||
Il n’existe pas de secrets pour écrire un bon test unitaire. Afin d’écrire un bon test unitaire, vous devez créer une conception qui soit facile à tester. | Il n’existe pas de secrets pour écrire un bon test unitaire. Afin d’écrire un bon test unitaire, vous devez créer une conception qui soit facile à tester. | ||