#spring-cloud-stream
Вопрос:
У меня есть класс, который вводит StreamBridge для отправки иногда некоторых событий. Тесты, в которых используется этот класс, завершаются неудачно, потому что не существует компонента. Я пытался
@Мокбин Стримбридж Стримбридж
это с помощью Mockito, но это не удается из-за некоторого статического содержимого. Пытался использовать
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream</artifactId>
<version>${spring.cloud.stream.version}</version>
<type>test-jar</type>
<scope>test</scope>
<classifier>test-binder</classifier>
</dependency>
но это не помогло. Я тоже пытался
@ImportAutoConfiguration(TestChannelBinderConfiguration.class)
но конфигурация Testchannelbindercon тоже не существует.
Есть идеи, как я могу сделать этот мост доступным для тестов?
Комментарии:
1. ошибка: Вызвана: org.springframework.beans.factory. Исключение NoSuchBeanDefinitionException: Нет квалифицирующего компонента типа ‘org.springframework.cloud.stream.функция. Доступен StreamBridge: ожидается, что по крайней мере 1 компонент, который квалифицируется как кандидат на автоматическое подключение. Аннотации зависимостей: {}
2. Похоже, эта комбинация сделала свое дело: @ComponentScan({«org.springframework.cloud.stream.binder.test»}) @Импорт(TestChannelBinderConfiguration.class)
Ответ №1:
Взгляните на эти тесты, чтобы увидеть, как StreamBridge
тестируется в рамках: https://github.com/spring-cloud/spring-cloud-stream/blob/main/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/StreamBridgeTests.java
Комментарии:
1. Я не хочу тестировать StreamBridge. Я хочу поиздеваться над этим, просто чтобы удовлетворить зависимость. Я видел этот пример, но он не помогает. Он не подключается автоматически, он считывает StreamBridge из контекста, но я не понимаю, как он был создан в контексте.