Introduction aux Tests
Les tests permettent de vérifier automatiquement que le code fonctionne correctement.
En développement, les tests sont très importants pour :
- Éviter les bugs
- Valider le comportement du programme
- Prévenir les erreurs
- Faciliter les modifications du code
- Améliorer la confiance dans le projet
Les tests font partie des bonnes pratiques modernes.
1. Pourquoi tester le code
Même un programme simple peut contenir des erreurs.
Les tests permettent de vérifier rapidement :
- Les résultats attendus
- Les cas particuliers
- Les comportements incorrects
Sans tests, une modification peut casser une fonctionnalité sans qu’on s’en rende compte.
2. Les tests manuels
Au début, plusieurs développeurs testent leur code manuellement.
function add(a, b) {
return a + b;
}
console.log(add(2, 2));
Ici, le développeur regarde manuellement le résultat dans la console.
3. Les limites des tests manuels
Les tests manuels deviennent rapidement difficiles à gérer.
Pourquoi ?
- Il faut tester plusieurs cas
- Les projets deviennent plus gros
- Les erreurs humaines augmentent
- Les validations deviennent répétitives
C’est pour cette raison que les tests automatisés existent.
4. Les tests automatisés
Les tests automatisés permettent à JavaScript de vérifier automatiquement le comportement du programme.
expect(add(2, 2)).toBe(4);
Ici, le test vérifie automatiquement :
- Le résultat obtenu
- Le résultat attendu
5. Résultat attendu vs résultat réel
Un test compare généralement deux valeurs :
| Concept | Description |
|---|---|
| Résultat attendu | Valeur qu’on veut obtenir |
| Résultat réel | Valeur produite par le programme |
expect(add(2, 2)).toBe(4);
Le test réussit seulement si les deux valeurs correspondent.
6. Tester une fonction
Les fonctions sont souvent les premiers éléments testés.
function multiply(a, b) {
return a * b;
}
expect(multiply(2, 3)).toBe(6);
Ici, le test valide le comportement de la fonction.
7. Cas nominal
Le cas nominal représente le comportement normal attendu.
expect(add(1, 1)).toBe(2);
Ce type de test vérifie le scénario principal.
8. Cas d’erreur
Un bon test vérifie aussi les cas particuliers ou invalides.
expect(add(0, 0)).toBe(0);
Tester plusieurs scénarios améliore la fiabilité du programme.
9. Les assertions
Une assertion est une vérification effectuée par un test.
expect(total).toBe(10);
Ici :
- expect() prépare le test
- toBe() vérifie la valeur
10. Les avantages des tests
- Détecter les erreurs rapidement
- Modifier le code plus facilement
- Éviter les régressions
- Améliorer la qualité du projet
- Créer des applications plus fiables
11. Les limites des tests
Les tests ne garantissent pas un programme parfait.
Cependant, ils réduisent énormément les risques d’erreurs.
Plus les tests sont complets, plus le projet devient stable.
12. Déboguage vs tests
| Concept | Rôle |
|---|---|
| Debugging | Trouver et comprendre une erreur |
| Tests | Vérifier automatiquement le comportement |
Les deux approches sont complémentaires.
13. Les tests dans les vrais projets
Les projets modernes utilisent souvent :
- Vitest
- Jest
- Testing Library
Ces outils permettent d’automatiser les validations du projet.
14. Bonnes pratiques
- Tester les fonctions importantes
- Tester plusieurs cas
- Créer des tests simples et lisibles
- Tester les cas nominaux et les erreurs
- Éviter les tests trop complexes
Résumé rapide
| Concept | Utilité |
|---|---|
| Test manuel | Validation faite par le développeur |
| Test automatisé | Validation automatique |
| expect() | Préparer un test |
| toBe() | Comparer une valeur |
| Assertion | Vérification effectuée |
| Cas nominal | Scénario normal |
| Cas d’erreur | Scénario particulier |