MockMvc teste les contrôleurs Spring sans démarrer de serveur : on simule une requête HTTP (perform(get(...))) et on vérifie le statut, les en-têtes et le corps JSON avec andExpect. Avec @WebMvcTest, seule la couche web est chargée, et les services sont remplacés par des mocks.
Exemple
mvc.perform(get("/clients/1"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.nom").value("Ada"));