Проблема с клиентами Feign в интеграционных тестах Spring Modulith с использованием @ApplicationModuleTest.JAVA

Программисты JAVA общаются здесь
Anonymous
Проблема с клиентами Feign в интеграционных тестах Spring Modulith с использованием @ApplicationModuleTest.

Сообщение Anonymous »

Я работаю над проектом Spring Boot 3.1, используя Spring Modulith 1.2.4, с двумя отдельными модулями: amadeus и Collinson. Каждый модуль имеет свой клиент Feign: Приложение отлично работает в рабочей среде, но я сталкиваюсь с проблемами при запуске интеграционных тестов для каждого модуля с помощью @ApplicationModuleTest. Например:
  • При запуске интеграционного теста для AmadeusService я получаю сообщение об ошибке, сообщающее, что CollinsonFeignClient недоступен:

    Код: Выделить всё

    No bean named 'com.demo.app.collinson.client.CollinsonFeignClient' available 
  • При запуске теста для CollinsonService я получаю аналогичную ошибку для AmadeusFeignClient: нет компонента с именем «com.demo.app.amadeus» Доступен .client.AmadeusFeignClient
Вот аннотации, которые я использую для своих тестов:
< pre class="lang-java Prettyprint-override">

Код: Выделить всё

@ApplicationModuleTest
class AmadeusServiceIT {
// test implementation
}

@ApplicationModuleTest
class CollinsonServiceIT {
// test implementation
}

Однако, если я переключусь с @ApplicationModuleTest на @SpringBootTest, тесты запускаются без проблем, что говорит о том, что клиенты Feign могут игнорировать изоляцию модуля, предоставляемую @ApplicationModuleTest.
Насколько я понимаю, @ApplicationModuleTest должен изолировать bean-компоненты для каждого модуля во время тестирования, но похоже, что Spring Cloud OpenFeign не соблюдает эту изоляцию, вызывает необходимость межмодульных bean-компонентов.
Кто-нибудь сталкивался с подобной проблемой с клиентами Feign в контексте Spring Modulith?
Есть ли способ настроить @ApplicationModuleTest или притвориться, что соблюдается изоляция модуля во время тестов?

Подробнее здесь: https://stackoverflow.com/questions/790 ... pplication

Вернуться в «JAVA»