🛢️Parcours Fioul GroupéSpring Boot · Chapitre 11
Accueil › Spring Boot › Chapitre 11
Chapitre 11 / 19 · projet

Projet — les tests automatisés

Des tests qui garantissent que l'API fonctionne et continue de fonctionner : tests unitaires du service, tests d'intégration des contrôleurs (MockMvc), et exécution en continu (CI).

1 Notion

La pyramide des tests

Beaucoup de tests unitaires (rapides, isolent une classe), quelques tests d'intégration (plusieurs couches ensemble), peu de tests end-to-end. Le starter spring-boot-starter-test fournit JUnit 5, Mockito et AssertJ.

2 Étape

Tester le service (unitaire)

On isole CampagneService en simulant le repository avec Mockito.

@Test
void rejoindre_refuse_si_cloturee() {
    Campagne c = new Campagne(); c.setStatut(Statut.CLOTUREE);
    when(repo.findById("1")).thenReturn(Optional.of(c));
    assertThrows(CampagneFermee.class,
        () -> service.rejoindre("1", new CreerCommandeDTO(1000, "Nexon", "...")));
}
3 Étape

Tester l'API avec MockMvc

MockMvc envoie de vraies requêtes HTTP à l'application (sans serveur réseau) et vérifie la réponse.

@SpringBootTest @AutoConfigureMockMvc
class CampagneApiTest {
  @Autowired MockMvc mvc;
  @Test void liste_repond_200() throws Exception {
    mvc.perform(get("/api/campagnes"))
       .andExpect(status().isOk());
  }
}
4 Pratique

Exécuter les tests en continu

mvn verify lance tous les tests. En intégration continue (parcours Forge, séance 6), ce même mvn verify tourne à chaque Pull Request : on ne fusionne que du vert.

🛢️ Sur le projet Fioul Groupé

Écris au moins : un test unitaire de calculerPrix (chaque palier), un test « rejoindre refusé si clôturée », et un test MockMvc de GET /api/campagnes. Branche-les dans le workflow GitHub Actions.

À retenir
  • Pyramide : beaucoup d'unitaires, quelques intégrations.
  • Mockito pour isoler ; MockMvc pour tester l'API.
  • mvn verify en local et en CI.
← Chapitre 10