我大致具有以下消息处理顺序:
//first route:
from("direct:startRoute")
.process(someProcessor)
.bean(SomeBean.class)
//...
.to("activemq:queue:queueName")
;
//second route:
from("activemq:queue:queueName")
.process(anotherProcessor)
//...
;
现在我要对该算法进行集成测试。但是,在将消息发送到队列后,第一个路由将停止并且测试完成。 我尝试通过以下方式进行测试:
template.sendBody(startEndpoint, "");
添加到第二条路线:
weaveAddLast().to(mockLastEndpoint)
等待答案:
mockLastEndpoint.assertExchangeReceived(0);
或创建
@Autowired
protected ConsumerTemplate consumerTemplate;
并等待答案,这样:
consumerTemplate.receive(mockLastEndpoint);
但是这些对象不等待答案。我需要等到测试路由将收到一条消息。我该怎么办?