Можете объяснить, что означает аннотация @WebMvcTest в контексте тестирования Spring приложений?

Аннотация @WebMvcTest используется в Spring для тестирования слоя веб-контроллеров.

Короткий ответ

Что ответить на собеседовании

Аннотация @WebMvcTest используется в Spring для тестирования слоя веб-контроллеров. Она загружает только компоненты, связанные с веб-слоем (например, контроллеры, конфигурации Spring MVC, фильтры), без загрузки всего контекста приложения.

Подробный разбор

Ответ с пояснениями

Аннотация @WebMvcTest используется в Spring для тестирования слоя веб-контроллеров. Она загружает только компоненты, связанные с веб-слоем (например, контроллеры, конфигурации Spring MVC, фильтры), без загрузки всего контекста приложения.

Это позволяет писать быстрые и изолированные тесты контроллеров, не затрагивая сервисы, репозитории и другие бины. Обычно вместе с @WebMvcTest используется MockMvc для имитации HTTP-запросов и проверки ответов.

Пример:

@WebMvcTest(MyController.class)
public class MyControllerTest {

    @Autowired
    private MockMvc mockMvc;

    @Test
    public void testGet() throws Exception {
        mockMvc.perform(get("/api/data"))
               .andExpect(status().isOk())
               .andExpect(content().string("Hello"));
    }
}

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее