Junior — Middle
What tools and approaches do you use for writing controller tests in your projects?
sobes.tech AI
Answer from AI
To test controllers in Java projects, the Spring Boot framework combined with the Spring MVC Test module (MockMvc) is often used. This tool allows writing integration tests that simulate HTTP requests to controllers without starting a full server.
Main approaches:
- Use
@WebMvcTestto load only the web layer. - Use
MockMvcto send requests and verify responses. - Mock the service layer with Mockito to isolate the controller.
Example of a controller test:
@RunWith(SpringRunner.class)
@WebMvcTest(MyController.class)
public class MyControllerTest {
@Autowired
private MockMvc mockMvc;
@MockBean
private MyService myService;
@Test
public void testGetEndpoint() throws Exception {
when(myService.getData()).thenReturn("Hello");
mockMvc.perform(get("/api/data"))
.andExpect(status().isOk())
.andExpect(content().string("Hello"));
}
}
This approach allows quick verification of controller logic and interaction with services.