У меня есть приложение, которое считывает свои свойства конфигурации из экземпляра Zookeeper.
Существует один внутренний модуль spring-boot-auto-configure, который помогает читать информацию из экземпляра zookeeper.
Нам нужно установить информацию об экземпляре zookeeper в файле bootstrap.properties
.
spring.factories из модуля автоконфигурации
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.company.name.ZooKeeperAutoConfig
В классах автоконфигурации также есть тот же файл
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.company.name.XyzAutoConfig
Поэтому, когда приложение запускается, оно получает информацию от bootstrap .properties и подключается к экземпляру zookeeper через модуль авто-конфигурации.
Я хочу написать тесты для Уровень контроллера Spring API с использованием аннотации @WebMvcTest
. Но даже в тестах он пытается подключиться к экземпляру zookeeper, чего я не хочу. Я не хочу, чтобы модульные тесты общались с внешними сервисами.
Я хочу исключить конфигурацию zookeeper bootstrap во время тестов.
Несколько способов, которые я безуспешно пытался.
1) Я пытался исключить подобное, но все равно он подключается к Zookeeper
@TestPropertySource(properties=
{"spring.autoconfigure.exclude=com.company.name.ZooKeeperAutoConfig"})
2) Я создал bootstrap -test.properties и добавлены некоторые фиктивные значения для свойств zookeeper. И в тесте я добавил @ActiveProfile("test")
. Он пытается подключиться к zookeeper через фиктивные значения и в конце концов терпит неудачу.
Есть ли способ, которым я могу полностью игнорировать / исключать конфигурацию Zookeeper bootstrap. Приложение не должно знать, что для работы ему необходимо подключиться к zookeeper.
Возможно ли исключить BootstrapConfiguration в тестах или нет?
Пожалуйста, дайте мне знать, если требуется дополнительная информация.