我只有一个句柄()然后是get(),没有输出通道。在将消息发送到此句柄时获取我正在发送回来的对象。但在单元测试中我得到了布尔值。如何在单元测试中恢复预期的对象?
下面是代码单元测试。
在单元测试中 - 布尔值即将发送消息而不是预期对象
Object o = this.acknowledgeAlarmInputChannel.send(message); System.out.println(“output:”+ o); //打印布尔值为true 代码:
for (var i = 0; i < 10 && i < list.length; i++) {
单元测试:
@Bean
public IntegrationFlow acknowledgeAlarmGatewayFlow() {
return IntegrationFlows.from("acknowledgeAlarmInputChannel")
.handle(this::createAlarmAckEvent)
.get();
}
答案 0 :(得分:0)
删除mockMessageHandler
内容 - 只会为频道订阅第二个(无操作)处理程序。
QueueChannel replies = new QueueChannel();
Message<AlarmInstance> message = MessageBuilder.withPayload(alarmInstance)
.setReplyChannel(replies)
.build();
this.acknowledgeAlarmInputChannel.send(message);
Message<?> reply = replies.get(0);
assertNotNull(reply);
...
或者,使用MessagingTemplate
(sendAndReceive
或convertSendAndReceive
操作。