¿Qué anotación de test arranca el contexto COMPLETO de Spring, y cuál carga solo la capa web?
Opciones
@WebMvcTestarranca el contexto completo;@SpringBootTestcarga la capa web@SpringBootTestarranca el contexto completo;@WebMvcTestcarga la capa web (Opción correcta)- Ambas anotaciones cargan siempre todo el contexto de la aplicación
@DataJpaTestarranca el contexto completo de la aplicación
Respuesta
@SpringBootTest es completo; @WebMvcTest carga solo los controladores y componentes web (con MockMvc)
Por qué
@SpringBootTest arranca toda la aplicación: lento pero realista (tests de integración).
Los test slices cargan solo la parte que estás probando, así que son más rápidos:
@WebMvcTest(UserController.class): solo la capa web; haces mock de los servicios y llamas a los endpoints conMockMvc.@DataJpaTest: solo JPA y repositories, con una base de datos en memoria por defecto.
Para unit tests puros de un servicio, sáltate Spring: usa JUnit + Mockito.
Recuerda
Los slices (@WebMvcTest, @DataJpaTest) son rápidos; @SpringBootTest es la app completa.