Anotação @WebMvcTest
A anotação @WebMvcTest
é usada para testes unitários da camada web. Ela foca apenas na camada de controle, carregando apenas os componentes necessários para testar os controllers.
Características
- Contexto parcial: Carrega apenas os beans relacionados aos controladores (controllers) e não inicializa o contexto completo da aplicação.
- Testes focados: Ideal para testar a lógica dos controladores e verificar se eles respondem corretamente a diferentes tipos de solicitações.
- Dependências: Outras dependências, como serviços e repositórios, devem ser mockadas se necessário.
Exemplo
@WebMvcTest(controllers = ChapterResource.class)
public class ChapterResourceTest {
@Autowired
private MockMvc mockMvc;
@MockBean
private ChapterService chapterService;
@Test
public void shouldReturnChapter() throws Exception {
when(chapterService.getChapter(anyLong())).thenReturn(new Chapter());
mockMvc.perform(get("/api/chapter/1"))
.andExpect(status().isOk());
}
}