有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JUnit测试隔离路由

我正在创建一个Camel应用程序。我有一系列的路线都是通过直接通道连接的。所以

  • RouteAdirect:1读取并写入direct:2
  • RouteBdirect:2读取并写入direct:3
  • RouteCdirect:3读取并写入direct:4

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

我的问题是,隔离测试每条路线的最佳方法是什么。我可以在一个单独的RouteBuilder中创建每个路由,但是spring中的上下文将包含所有三个路由构建器,因此这不起作用

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

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

还有其他想法吗


共 (1) 个答案

  1. # 1 楼答案

    如果您只需要黑盒测试每个路由,那么只需使用Camel的AdviceWith支持来隔离每个路由的输入/输出

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