Sobes.tech
Back to questions
Junior — Middle
62

Какой инструмент и подходы ты используешь для написания тестов для контроллеров в своих проектах?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Для тестирования контроллеров в Java-проектах часто используют фреймворк Spring Boot вместе с модулем Spring MVC Test (MockMvc). Этот инструмент позволяет писать интеграционные тесты, которые имитируют HTTP-запросы к контроллерам без запуска полноценного сервера.

Основные подходы:

  • Использование @WebMvcTest для загрузки только слоя веб-контроллеров.
  • Применение MockMvc для отправки запросов и проверки ответов.
  • Мокирование сервисного слоя с помощью Mockito, чтобы изолировать контроллер.

Пример теста контроллера:

@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"));
    }
}

Такой подход позволяет быстро проверять логику контроллеров и их взаимодействие с сервисами.