Tests de la couche web avec MockMvc
Testez les contrôleurs avec @WebMvcTest.
Tests de la couche web avec MockMvc est une leçon Spring Boot 4 Microservices & REST APIs gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Spring Boot 4 Microservices & REST APIs, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Spring Boot 4 Microservices & REST APIs comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Testing the Web Layer
Web layer tests verify your controllers — request mapping, validation, serialization, and status codes — without starting a full server.
Spring Boot provides @WebMvcTest and MockMvc for this.
@WebMvcTest
@WebMvcTest loads only the web slice: controllers, filters, and converters. Services and repositories are not loaded — you mock them.
@WebMvcTest(UserController.class)
class UserControllerTest {
@Autowired
MockMvc mockMvc;
@MockBean
UserService userService;
}MockMvc.perform
MockMvc simulates HTTP requests against your controller without a network.
mockMvc.perform(get("/users/1"))
.andExpect(status().isOk());Mocking the Service
Use @MockBean to replace the service in the context, then stub it with Mockito.
@Test
void returnsUser() throws Exception {
when(userService.getById("1"))
.thenReturn(new User("1", "Alice"));
mockMvc.perform(get("/users/1"))
.andExpect(status().isOk());
}Asserting JSON with jsonPath
jsonPath verifies fields in the JSON response body.
mockMvc.perform(get("/users/1"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.name").value("Alice"))
.andExpect(jsonPath("$.id").value("1"));Testing POST Requests
Send a JSON body with content and contentType.
mockMvc.perform(post("/users")
.contentType(MediaType.APPLICATION_JSON)
.content("{\"name\":\"Bob\"}"))
.andExpect(status().isCreated());Asserting Error Statuses
Verify 404 or 400 responses for missing resources or invalid input.
when(userService.getById("99"))
.thenThrow(new NotFoundException());
mockMvc.perform(get("/users/99"))
.andExpect(status().isNotFound());Testing Validation
When a request fails bean validation, expect a 400 Bad Request.
mockMvc.perform(post("/users")
.contentType(MediaType.APPLICATION_JSON)
.content("{\"name\":\"\"}"))
.andExpect(status().isBadRequest());Checking Headers
Assert response headers such as Location after a create.
mockMvc.perform(post("/users")
.contentType(MediaType.APPLICATION_JSON)
.content("{\"name\":\"Bob\"}"))
.andExpect(header().string("Location",
"/users/2"));Query Parameters
Add request parameters with param.
mockMvc.perform(get("/users")
.param("name", "Alice"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.length()").value(1));Printing the Result
Use andDo(print()) to log the full request and response while debugging.
mockMvc.perform(get("/users/1"))
.andDo(print())
.andExpect(status().isOk());Quick Check
Test your understanding of MockMvc.
Recap
You learned to test controllers in isolation:
@WebMvcTestloads only the web sliceMockMvc.performsimulates requests@MockBeanreplaces servicesjsonPath,status(),header()for assertions
Questions Fréquemment Posées
La leçon « Tests de la couche web avec MockMvc » est-elle gratuite ?
Oui — le texte complet de « Tests de la couche web avec MockMvc » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Spring Boot 4 Microservices & REST APIs, passe à CoddyKit PRO. Le cours Spring Boot 4 Microservices & REST APIs comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Tests de la couche web avec MockMvc » ?
Testez les contrôleurs avec @WebMvcTest. Tu pratiques Spring Boot 4 Microservices & REST APIs avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Spring Boot 4 Microservices & REST APIs ?
Aucune expérience préalable n'est requise. Spring Boot 4 Microservices & REST APIs sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Tests de la couche web avec MockMvc » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Spring Boot 4 Microservices & REST APIs ?
Oui. Chaque leçon Spring Boot 4 Microservices & REST APIs inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Tests unitaires avec JUnit et Mockito
- Tests de la couche web avec MockMvc
- Tests d'intégration avec @SpringBootTest
- Dépendances réelles avec Testcontainers