gpt4 book ai didi

java - JUnit 测试隔离路由

转载 作者:太空宇宙 更新时间:2023-11-04 07:46:19 27 4
gpt4 key购买 nike

我正在创建一个 Camel 应用程序。我有一系列路线,全部通过直接 channel 连接。所以...

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

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

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

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

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

还有其他想法吗?

最佳答案

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

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

关于java - JUnit 测试隔离路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15232940/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com