TGViewer
Чашечка Java Чашечка Java @a_cup_of_java · 8.4K subscribers
Post #8387 1.13K
Разделяй и тестируй: @DataJpaTest и @WebMvcTest для быстрых тестов Spring Boot

Привет, Хабр! Cегодня рассмотрим, как ускорить интеграционные тесты в Spring Boot с помощью специальных slice аннотаций.

Начнём с того, почему вообще тесты могут быть медленными. Используя @SpringBootTest, мы просим Spring Boot поднять весь контекст приложения для каждого тестового класса. У нас доступны все бины, но часто все это избыточно. Например, хочется протестировать контроллер, а Spring загружает ещё и базу данных, и сервисы, и шлёт запросы к Kafka. В результате простой тест метода контроллера может запускаться несколько секунд, пока поднимется веб‑сервер, инициализируется база, подтянутся все классы.

Эту проблему осознали и добавили так называемые test slice‑аннотации. Все простоб грузим не весь контекст, а только срез приложения, например, только веб‑слой или только слой доступа к данным. Spring Boot содержит готовые slice‑аннотации для основных слоёв: @WebMvcTest для веб, @DataJpaTest для JPA‑репозиториев, и ещё пачку для других случаев.

Рассмотрим на примерах двух интересных слайса: @DataJpaTest и @WebMvcTest.


Читать: https://habr.com/ru/companies/otus/articles/978616/?utm_campaign=978616

@a_cup_of_java | Другие наши каналы
More from @a_cup_of_java
  1. Sep 20, 2026Docker Compose с JDK 26: зависимости в контейнерах, Java локально В примере Maven-приложен…
  2. Sep 20, 2026Как перевести Dev Services на новый API Quarkus 3.25 В Quarkus 3.25 появился новый API для…
  3. Sep 20, 2026Hibernate 7: как заменить устаревший @GenericGenerator При миграции на Hibernate 7 аннотац…
  4. Sep 19, 2026Как собрать движок отказоустойчивых сценариев на Java и SQLite Persistasaurus показывает у…
  5. Sep 19, 2026Как построить многоуровневую защиту LLM-вызовов в Spring AI 2.0 В Spring Boot 4.1 защиту в…
  6. Sep 19, 2026В JDK 27 и 28 ускорили операции Curve25519 С JDK 27 build 14 изменения внутренних структур…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →