1

我正在创建一个骆驼应用程序。我有一系列通过直接渠道连接的路线。所以...

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

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

我的问题是,隔离测试每条路线的最佳方法是什么。我可以单独创建每条路线,RouteBuilder但春季的上下文将包含所有三个路线构建器,因此无法正常工作。

一种想法是将所有 Spring bean 放在一个上下文文件中,然后使用仅加载单个RouteBuilder. 这样做的问题是,如果在配置文件中设置了其他内容camelContext(错误处理程序、拦截器等),则可能会出现复制/粘贴错误。

有没有办法创建一个默认的骆驼上下文,链接spring应用程序上下文并加载一个RouteBuilder?这与特定于测试的 xml 文件有相同的问题,但至少没有额外的 xml 文件。

还有其他想法吗?

4

1 回答 1

1

如果您只需要对每条路线进行黑盒测试,那么只需使用 Camel 的AdviceWith支持来隔离每条路线的输入/输出......

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

于 2013-03-05T20:29:10.063 回答