Выбор ответа Middle Тестирование в Spring обновлено

@ServiceConnection

Вопрос

Что делает @ServiceConnection на поле с контейнером Testcontainers в Boot 3.1+?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Сам настраивает подключение к контейнеру. Boot определяет тип контейнера (PostgreSQL, Kafka, Redis и др.) и регистрирует ConnectionDetails, из которых строятся DataSource и клиенты.

Варианты ответа

  1. Запускает контейнер ещё до старта JVM тестов
  2. Подменяет контейнер на H2, если Docker недоступен
  3. Делает контейнер общим для всех тестов в CI
  4. Сам настраивает подключение к контейнеруправильный ответ

Разбор

Boot определяет тип контейнера (PostgreSQL, Kafka, Redis и др.) и регистрирует ConnectionDetails, из которых строятся DataSource и клиенты. Раньше то же делали вручную через @DynamicPropertySource. Запуск контейнера управляется Testcontainers, подмены на H2 нет, а общий контейнер на весь прогон делают static-полем или singleton-паттерном.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.