我的Integration流程没有输出通道的单元测试用例

时间:2017-05-29 21:43:55

标签: spring-integration

我只有一个句柄()然后是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();
}

1 个答案:

答案 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);
...

或者,使用MessagingTemplatesendAndReceiveconvertSendAndReceive操作。