Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JUnit测试隔离路由_Java_Apache Camel - Fatal编程技术网

Java JUnit测试隔离路由

Java JUnit测试隔离路由,java,apache-camel,Java,Apache Camel,我正在创建一个Camel应用程序。我有一系列的路线都是通过直接通道连接的。所以 RouteA读取direct:1并写入direct:2 RouteB读取direct:2并写入direct:3 RouteC读取direct:3并写入direct:4 我正在使用JavaDSL创建路由。上下文是在Spring内部创建的,路由使用对Spring上下文中bean的引用 我的问题是,隔离测试每条路线的最佳方法是什么。我可以在一个单独的RouteBuilder中创建每个路由,但是spring中的上下文将包

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

  • RouteA
    读取
    direct:1
    并写入
    direct:2
  • RouteB
    读取
    direct:2
    并写入
    direct:3
  • RouteC
    读取
    direct:3
    并写入
    direct:4
我正在使用JavaDSL创建路由。上下文是在Spring内部创建的,路由使用对Spring上下文中bean的引用

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

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

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


还有其他想法吗?

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


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

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

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