我无法在我的单元测试中模拟 StreamBridge。
@MockBean
private StreamBridge bridge;
由于以下原因,我收到了 IllegalStateException:
引起:org.mockito.exceptions.base.MockitoException: 无法模拟/间谍类 org.springframework.cloud.stream.function.StreamBridge Mockito 不能模拟/间谍,因为:
答案 0 :(得分:0)
我联系了 StreamBridge 类的作者 Oleg,他基本上是这样说的:
<块引用>我们不应该为了简单地容纳一些测试框架而将 StreamBridge 开放。如果有的话,它应该是相反的。
另外,奥列格提到了
<块引用>此外,我们提供了一个专门为这些类型的情况设计的测试活页夹,您可以在其中实际验证与 StreamBridge(和其他组件)的真实活页夹交互,而不是实际上可能错误的模拟假设。有关使用 StreamBridge 进行测试的更多信息,请查看 https://github.com/spring-cloud/spring-cloud-stream/blob/master/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/StreamBridgeTests.java。
考虑到上面 Oleg 的响应,并且由于我需要隔离 Spring Cloud Stream 代码(StreamBridge 和其他任何东西)来测试我的代码,我将研究 Spring Cloud Stream 中的测试绑定器。
顺便说一句,我使用的是最新的 Spring Boot (2.4.5) / Spring Cloud Train Release (2020.0.2)。
谢谢,
鲁本斯