Table des matières

Tests unitaires

On utilise souvent la matrice Given-When-Then (Structure AAA) :

// Given (Arrange) - Préparer les données
// When (Act) - Exécuter l'action 
// Then (Assert) - Vérifier le résultat

On isole le service à tester en utilisant des Mock objects (objets factices).

Vérification du WorkFlow métier :

Exemple :

Si la catégorie n'existe pas → le service ne doit PAS essayer de sauver le produit !

Bonnes pratiques

FIRST

Fast

Feeback rapide après lancement de la suite

Independant

Ne pas faire dépendre un test du résultat d'autres tests, ni de l'environnement

Repeatable

Un test doit toujours produire le même résultat, prédictible

Self-validating

Doit être autonome pour déterminer la validité de son résultat

Timely

Fait au bon moment (avant l'écriture du code de prod dans l'idéal)

Ressources

Annotations Spring/Mockito

@ExtendWith(MockitoExtension::class)  // Pour tests unitaires
@SpringBootTest                       // Application complète
@WebMvcTest(Controller::class)        // Tests controllers
@DataJpaTest                         // Tests repositories
@Mock                                // Faux objet
@MockBean                           // Mock dans contexte Spring
@InjectMocks                        // Vraie instance avec mocks injectés