如何模拟 rabbitmq 来测试独立的 Spring 云数据流处理器?

How to mock rabbitmq to test the standalone Spring cloud data flow processor?

我有一个 SCDF 处理器,它使用 PolledProcessor 每秒从输入 rabbitmq 进行轮询。有没有办法模拟输入的 rabbitmq 以便我可以验证轮询行为?

您不需要模拟 RabbitMQ。使用来自 SpringCloudStream 的 TestChannelBinder 并注册一个 MessageSource<byte[]> 来模拟从 PollableSource 接收到的内容。您需要包含以下依赖项:

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-stream</artifactId>
        <type>test-jar</type>
        <classifier>test-binder</classifier>
        <scope>test</scope>
</dependency>

例如,参见 https://github.com/spring-cloud/spring-cloud-stream/blob/main/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/PollableConsumerTests.java