Pourquoi des tests
Un test unitaire vérifie une petite unité (une méthode) de façon automatique et répétable. Il documente le comportement attendu et détecte les régressions dès qu'on modifie le code.
Écrire un test
import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; class CampagneTest { @Test void volumeTotal_additionneLesCommandes() { Campagne c = new Campagne("Hiver"); c.ajouter(new Commande(1500)); c.ajouter(new Commande(2000)); assertEquals(3500, c.volumeTotal()); // attendu vs réel } @Test void inscription_campagneCloturee_leve() { Campagne c = new Campagne(Statut.CLOTUREE); assertThrows(CampagneClotureeException.class, () -> c.inscrire(1500)); } }
AAA — un bon test suit Arrange (préparer), Act (agir), Assert (vérifier).
🛢️ Sur le projet Fioul Groupé
On teste les règles métier du domaine : le volume total est bien la somme des commandes, l'inscription à une campagne clôturée lève l'exception. Ces tests JUnit sont exactement ceux qu'exécutera la CI GitHub Actions à chaque Pull Request (parcours Forge) — la CI verte devient une condition de fusion.
À retenir
- Un test unitaire vérifie une méthode, automatiquement et répétablement.
- @Test + assertEquals/assertThrows (JUnit 5).
- Schéma AAA : Arrange, Act, Assert.
- Les tests alimentent la CI (PR) du parcours Forge.