Aller au contenu

Tests unitaires

"Un test unitaire protège le code comme une ceinture de sécurité protège un conducteur."

Image classique du testing

Objectifs pédagogiques

À la fin de cette page, vous serez capable de :

  • définir un test unitaire
  • comprendre son rôle dans la pyramide de test
  • identifier ce qui doit être testé en unitaire
  • expliquer pourquoi on isole les dépendances
  • donner des exemples concrets avec MyEvents

Définition

Un test unitaire vérifie le comportement d’une unité de code :

  • fonction
  • méthode
  • classe

👉 Il teste une unité isolément, sans dépendances réelles (pas de DB, pas d’API, pas de réseau).

Image title
Test unitaire

Pourquoi c’est important ?

Les tests unitaires offrent :

  • un feedback rapide
  • une détection précoce des bugs
  • une meilleure maintenabilité
  • une base solide pour la régression

👉 Dans la pyramide de test :
les tests unitaires sont nombreux et peu coûteux.


Quand les utiliser ?

  • dès qu’on écrit une nouvelle fonctionnalité
  • à chaque correction de bug
  • lors de refactorings (sécuriser les changements)
  • dans une approche TDD (optionnel)

Exemple fil rouge – MyEvents

Dans MyEvents, on peut tester unitairement :

  • la validation d’un formulaire de création d’événement
  • le calcul du prix total d’un panier de billets
  • les règles métier : quotas, statuts, contraintes

Exemple 1 — Calcul de prix total (simple et testable)

Règle métier (exemple)

  • prix billet = 25 CHF
  • quantité = 3
  • total attendu = 75 CHF

✅ Test unitaire : - on appelle une méthode CalculateTotalPrice(25, 3) - on vérifie que le résultat vaut 75


Exemple 2 — Validation de données (cas limites)

Règle métier (exemple)

  • titre événement obligatoire
  • date de fin > date de début
  • capacité >= 1

✅ Tests unitaires possibles : - titre vide → erreur - fin avant début → erreur - capacité = 0 → erreur


Isolation des dépendances (rappel)

Si une méthode appelle une API externe (paiement Stripe, email SendGrid…) :

  • ❌ pas unitaire si on appelle le vrai service
  • ✅ unitaire si on remplace par un double (mock/stub)

👉 Voir : Moyens et dépendances de test


Ce qu’un test unitaire ne doit pas faire

❌ Ne doit pas :

  • appeler une vraie base de données
  • appeler une API externe réelle
  • dépendre du réseau ou de fichiers système

✅ Doit :

  • rester rapide
  • être stable
  • être reproductible

“Les tests unitaires sont la fondation de la pyramide. Ils sont automatisés et rapides à exécuter.”


⬅ Tests fonctionnels ➡ Tests d’intégration