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

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

Сообщение Anonymous »

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

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

    No bean named 'com.demo.app.collinson.client.CollinsonFeignClient' available 
  • При запуске теста для CollinsonService я получаю аналогичную ошибку для AmadeusFeignClient:

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

    No bean named 'com.demo.app.amadeus.client.AmadeusFeignClient' available 
Вот аннотации, которые я использую для своих тестов:

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

@ApplicationModuleTest
class AmadeusServiceIT {
// test implementation
}

@ApplicationModuleTest
class CollinsonServiceIT {
// test implementation
}

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

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

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