Objectif :
désacraliser les tests, montrer qu’un test guide le développement et comprendre que l’échec est normal et utile !
En Java :
il passe… ouf !
Nouvelle règle métier :
“Un virement ne peut pas être effectué si le montant est négatif.”
Vous êtes libre d’utiliser des Double ou double plutôt que le BigDecimal pour simplifier les TP.
Une méthode de test :
@Test void virement_refuse_si_montant_negatif() { Compte source = new CompteCourant( "FR001", new BigDecimal("1000"), new BigDecimal("500")); Compte cible = new CompteEpargne( "FR002", new BigDecimal("300")); VirementService service = new VirementService(); assertThrows( IllegalArgumentException.class, () -> service.virer(source, cible, new BigDecimal("-100")) ); }
Le test échoue et c’est normal !
Messages possibles :
C’est le point de départ, pas une erreur.
public class VirementService { public void virer(Compte source, Compte cible, BigDecimal montant) { source.debiter(montant); cible.crediter(montant); } }
public void virer(Compte source, Compte cible, BigDecimal montant) { if (montant.compareTo(BigDecimal.ZERO) <= 0) { throw new IllegalArgumentException("Montant invalide"); } source.debiter(montant); cible.crediter(montant); }
Questions à se poser :
À ce stade, les développeurs et les développeuses comprennent que :
Vous êtes bientôt prêt pour aborder Spring Boot.