expect() et les Assertions
Dans les tests automatisés, expect() permet de vérifier qu’une valeur correspond au résultat attendu.
Cette technique est appelée :
- Assertion
- Validation automatique
- Comparaison de résultat
expect() est très utilisé avec des outils comme :
- Vitest
- Jest
1. Structure d’un test
Un test compare généralement :
- Le résultat réel
- Le résultat attendu
expect(2 + 2).toBe(4);
| Partie | Rôle |
|---|---|
| expect() | Valeur à tester |
| toBe() | Comparaison |
| 4 | Résultat attendu |
2. Tester une fonction
Les fonctions sont souvent testées avec expect().
function add(a, b) {
return a + b;
}
expect(add(2, 3)).toBe(5);
Ici, le test vérifie si la fonction retourne bien :
5
3. toBe()
La méthode toBe() compare deux valeurs simples.
expect(10).toBe(10);
Cette méthode est souvent utilisée avec :
- number
- string
- boolean
4. Échec d’un test
Si les valeurs sont différentes, le test échoue.
expect(2 + 2).toBe(5);
Échec test
> Expected: 5
> Received: 4
Le framework indique :
- La valeur attendue
- La valeur reçue
5. toEqual()
La méthode toEqual() est utilisée pour comparer des objets ou tableaux.
expect([1, 2]).toEqual([1, 2]);
Cette méthode compare le contenu des données.
6. Pourquoi toEqual() existe
En JavaScript, les tableaux et objets sont comparés par référence.
console.log([1, 2] === [1, 2]);
Références
> false
toEqual() permet donc de comparer le contenu réel.
7. Tester un tableau
function getNumbers() {
return [1, 2, 3];
}
expect(getNumbers()).toEqual([1, 2, 3]);
8. Tester un objet
function getUser() {
return {
name: "Fred",
age: 33
};
}
expect(getUser()).toEqual({
name: "Fred",
age: 33
});
9. Cas nominal
Le cas nominal représente le comportement normal attendu.
expect(add(1, 1)).toBe(2);
Ce type de test valide le scénario principal.
10. Cas d’erreur
Un bon test vérifie aussi les cas particuliers.
expect(add(0, 0)).toBe(0);
Tester plusieurs cas améliore la fiabilité du programme.
11. Plusieurs assertions
Une fonction peut contenir plusieurs assertions.
expect(add(1, 1)).toBe(2);
expect(add(2, 2)).toBe(4);
expect(add(5, 5)).toBe(10);
12. Organisation des tests
Les tests sont souvent regroupés dans des fonctions.
function testAdd() {
expect(add(1, 1)).toBe(2);
expect(add(2, 2)).toBe(4);
}
Cette approche améliore la lisibilité du projet.
13. Assertions lisibles
Un bon test doit être simple à comprendre.
expect(total).toBe(10);
Les tests servent aussi de documentation du comportement attendu.
14. Bonnes pratiques
- Tester plusieurs cas
- Créer des assertions simples
- Tester les fonctions importantes
- Séparer les tests logiquement
- Utiliser toEqual() pour les objets et tableaux
Résumé rapide
| Concept | Utilité |
|---|---|
| expect() | Préparer un test |
| Assertion | Validation automatique |
| toBe() | Comparer des valeurs simples |
| toEqual() | Comparer objets et tableaux |
| Cas nominal | Scénario principal |
| Cas d’erreur | Scénarios particuliers |
| Échec test | Différence entre attendu et reçu |