Spring Boot: автоматически настроенные тесты

Система автоконфигурации Spring Boot хорошо работает для приложений, но иногда может оказаться слишком сложной для тестов. Это часто помогает загружать только те части конфигурации, которые необходимы для проверки «среза» вашего приложения. Например, вы можете захотеть проверить, что контроллеры Spring MVC правильно отображают URL-адреса, и вы не хотите включать вызовы базы данных в эти тесты, или вы можете захотеть тестировать сущности JPA, и вас не интересует веб-слой, когда те тесты запускаются.

Модуль spring-boot-test-autoconfigure содержит ряд аннотаций, которые можно использовать для автоматической настройки таких «кусочков». Каждый из них работает аналогичным образом, предоставляя аннотацию @…Test, которая загружает ApplicationContext, и одну или несколько аннотаций @AutoConfigure…, которые можно использовать для настройки параметров автоконфигурации.

Каждый фрагмент ограничивает сканирование компонентов соответствующими компонентами и загружает очень ограниченный набор классов автоконфигурации. Если вам необходимо исключить один из них, большинство аннотаций @…Test предоставляют атрибут excludeAutoConfiguration. Кроме того, вы можете использовать @ImportAutoConfiguration#exclude.

Включение нескольких «кусочков» с использованием нескольких @… аннотаций теста в одном тесте не поддерживается. Если вам нужно несколько «срезов», выберите одну из аннотаций @…Test и включите аннотации @AutoConfigure… других «срезов» вручную.

Также можно использовать аннотации @AutoConfigure… со стандартной аннотацией @SpringBootTest. Вы можете использовать эту комбинацию, если вы не заинтересованы в «нарезке» своего приложения, но вам нужны некоторые из автоматически настроенных тестовых компонентов.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки