Spring integration 在我的集成流没有输出通道的情况下的单元测试用例

Spring integration 在我的集成流没有输出通道的情况下的单元测试用例,spring-integration,Spring Integration,我只有一个句柄()和get(),没有输出通道。在将消息发送到此句柄时,获取我在流中发送回的对象。但在单元测试中,我得到的是布尔值。如何在单元测试中获得预期的对象 下面是代码单元测试 在单元测试中-布尔值在发送消息时出现,而不是预期的对象 对象o=this.acknowledgeAlarmInputChannel.send(消息); System.out.println(“输出:+o);//打印布尔值true 代码: 单元测试: @Test public void testEvent() {

我只有一个句柄()和get(),没有输出通道。在将消息发送到此句柄时,获取我在流中发送回的对象。但在单元测试中,我得到的是布尔值。如何在单元测试中获得预期的对象

下面是代码单元测试

在单元测试中-布尔值在发送消息时出现,而不是预期的对象

对象o=this.acknowledgeAlarmInputChannel.send(消息); System.out.println(“输出:+o);//打印布尔值true 代码:

单元测试:

@Test
public void testEvent() {
    String expectedEMResponse = "{\n" +
            "  \"data\": {\n" +
            "    \"id\": 19,\n" +
            "    \"type\": \"alarms\",\n" +
            "    \"attributes\": {}\n" +
            "  }\n" +
            "}";
    MessageHandler mockMessageHandler = mock(MessageHandler.class);
    this.acknowledgeAlarmInputChannel.subscribe(mockMessageHandler);

    MockRestServiceServer server = MockRestServiceServer.bindTo(restTemplate).build();
    server.expect(requestTo(emAcknowledgeEventUrl.replace("{hostID}", "12")))
            .andRespond(withSuccess(expectedEMResponse, MediaType.APPLICATION_JSON));

    AlarmInstance alarmInstance = new AlarmInstance();
    alarmInstance.setAlarmName("a1");
    alarmInstance.setInstanceId("1");
    alarmInstance.setAcknowledgedAt(new Date());
    alarmInstance.setAcknowledgedBy("u1");
    alarmInstance.setComponentName("x1");
    GenericMessage<AlarmInstance> message = new GenericMessage<AlarmInstance>(alarmInstance);

    Object o = this.acknowledgeAlarmInputChannel.send(message);
    System.out.println("output: " + o);
}
@测试
公共事件(){
字符串expectedEMResponse=“{\n”+
“\”数据\“:{\n”+
“\“id\”:19,\n”+
“\”类型\“:\”报警\“,\n”+
“\”属性\“:{}\n”+
“}\n”+
"}";
MessageHandler mockMessageHandler=mock(MessageHandler.class);
this.acknowledgeAlarmInputChannel.subscribe(mockMessageHandler);
MockRestServiceServer=MockRestServiceServer.bindTo(restemplate.build();
expect(requestTo(emackknowledgeeeventrl.replace(“{hostID}”,“12”))
.andRespond(使用success(expectedEMResponse,MediaType.APPLICATION_JSON));
AlarmInstance AlarmInstance=新建AlarmInstance();
alarmInstance.setAlarmName(“a1”);
alarmInstance.setInstanceId(“1”);
alarmInstance.setAcknowledgedAt(新日期());
alarmInstance.SetAcknowledBy(“u1”);
alarmInstance.setComponentName(“x1”);
GenericMessage=新的GenericMessage(alarmInstance);
对象o=this.acknowledgeAlarmInputChannel.send(消息);
System.out.println(“输出:+o”);
}

删除
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);
...
QueueChannel repress=new QueueChannel();
Message Message=MessageBuilder.withPayload(alarmInstance)
.setReplyChannel(回复)
.build();
此.acknowledgeAlarmInputChannel.send(消息);
消息回复=回复。获取(0);
assertNotNull(答复);
...

或者,使用
MessagingTemplate
sendAndReceive
convertSendAndReceive
操作)。

删除
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);
...
QueueChannel repress=new QueueChannel();
Message Message=MessageBuilder.withPayload(alarmInstance)
.setReplyChannel(回复)
.build();
此.acknowledgeAlarmInputChannel.send(消息);
消息回复=回复。获取(0);
assertNotNull(答复);
...

或者,使用
MessagingTemplate
sendAndReceive
convertSendAndReceive
操作)。

良好;请参阅-将其标记为已接受将帮助其他人寻找类似的答案。已接受,感谢Gary对过程的解释。很好;请参阅-将其标记为已接受将帮助其他人寻找类似的答案。已接受,感谢Gary对过程的解释。