我需要使用(版本1.6)
为某些驼峰路线编写单元测试用例有人可以建议是否可以在路线内模拟组件(处理器和idempotentConsumer)?如果是,请建议方法。
以下是路线片段
from("direct:someuri").process(someClassObject).
idempotentConsumer(header("someHeadername"),socratesMessageIdRepository(bean(JpaTemplate.class)))./*process(exceptionProcessor)*/
to(someQueues);
答案 0 :(得分:3)
Camel有一个很好的测试和模拟框架。
关于这个主题有很多主题,我建议你开始在这里阅读:http://camel.apache.org/mock和http://camel.apache.org/testing.html
请注意,Camel源代码中包含大量测试用例,您可以通过这些测试用例来学习如何测试/模拟。防爆。 http://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/IdempotentConsumerTest.java
如果您只想模拟处理器,则可以使用bean组件代替并通过引用调用它。
from("foo").bean("myBean").to("bar);
如果你使用spring,你可以简单地注入一个模拟版本的处理器,并将其命名为myBean。即使没有spring,Camel也有一个注册表,你可以绑定你的模拟版本,而不是真正的版本。