2

我需要使用(版本 1.6)为一些骆驼路线编写单元测试用例

任何人都可以建议是否可以在路线内模拟组件(处理器和幂等消费者)?如果是,请提出方法。

以下是路线片段

    from("direct:someuri").process(someClassObject).
    idempotentConsumer(header("someHeadername"),socratesMessageIdRepository(bean(JpaTemplate.class)))./*process(exceptionProcessor)*/
    to(someQueues); 
4

1 回答 1

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 也有一个注册表,您可以在其中绑定您的模拟版本,而不是真实版本。

于 2013-01-08T11:54:05.340 回答