【发布时间】:2015-01-30 22:56:09
【问题描述】:
我最近开始研究 Apache Camel,但遇到了一个问题。 我开始为我的路线编写一些测试,并且有很多示例,其中“到”部分路线写成
<route id="person-add-route">
<from uri="direct:start"/>
<to uri="mock:result"/>
</route>
所以,我写了一个测试,我希望将 mock:result 作为最后一个端点。
@Test
@DirtiesContext
public void testCamel() throws Exception {
// Given
Object body = "body";
int messageCount = 1;
MockEndpoint endpoint = getMockEndpoint("mock:result");
// When
template.sendBody("direct:start", body);
// Then
endpoint.expectedMessageCount(messageCount);
endpoint.assertIsSatisfied();
}
问题如下:如果我想测试我的路线,写 mock:result 重要吗?
【问题讨论】:
-
不确定您在问什么...您是在问是否需要在所有路由的末尾包含一个模拟端点以测试它们?
-
我在问 - 我需要在我的生产路线中包含那个“mock:result”吗?如果是,那对我来说很困惑,因为我不明白为什么我需要在我的真实代码中添加测试功能?有什么办法可以在我的真实代码中排除“模拟:”指令?解决方法对我来说不是问题,但我想获得一些更优雅的解决方案。谢谢,
-
您做错了,您应该在发送消息之前设置期望。 1) 设定期望 2) 发送消息 3) 断言已满足
标签: java spring apache apache-camel