В чём разница: @SpringBootTest vs @WebMvcTest vs @DataJpaTest?

Ответ

@SpringBootTest: поднимает ВЕСЬ контекст (медленно, для интеграционных/E2E). @WebMvcTest: только веб-слой (контроллеры + MockMvc, без БД). @DataJpaTest: только JPA-слой + встроенная БД, с откатом транзакций после каждого теста.

Разбор: @SpringBootTest поднимает весь контекст (медленно, для интеграционных тестов), @WebMvcTest — срез только веб-слоя с MockMvc и без БД, @DataJpaTest — срез JPA с встроенной БД и откатом транзакций после каждого теста. Срезовые аннотации (@WebMvcTest/@DataJpaTest) намеренно ограничивают контекст, а @DataJpaTest по умолчанию подменяет БД на embedded и откатывает изменения автоматически.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться