2013-03-05 102 views
1

我正在创建一个Camel应用程序。我有一系列通过直接渠道连接的路线。所以......JUnit测试独立路由

  • RouteAdirect:1读取和写入direct:2direct:2
  • RouteB读取和写入direct:3direct:3
  • RouteC读取和写入direct:4

我现在用的是Java DSL创建路由。上下文在Spring中创建,并且这些路由在Spring上下文中使用对bean的引用。

我的问题是,什么是最好的方式来孤立测试每条路线。我可以创建单独的路线RouteBuilder,但春天的上下文将包含所有三个路线建设者,所以这是行不通的。

一个想法是将所有的Spring bean放在一个上下文文件中,然后使用只加载一个RouteBuilder的测试特定上下文文件。与此相关的问题是,如果在配置文件(错误处理程序,拦截器等)中设置了camelContext中的其他内容,就有可能发生复制/粘贴错误。

会有一种方法来创建一个默认的骆驼上下文,链接春天的应用程序上下文和加载一个单一的RouteBuilder?这与测试特定的xml文件有相同的问题,但至少没有额外的xml文件。

还有其他想法吗?

回答

1

,如果你只需要黑盒测试每个路由,就用骆驼AdviceWith支持每条路线的输入/输出隔离...

尤其是看

在interceptSendToEndpoint()API ......应允许您拦截路由之间的消息发送并断言预期的输出等。

+0

肯定是可行的解决方案,谢谢。 – 2013-03-06 12:51:40