如何单元测试 sql-camel 路线中存储的步骤

How to unit test sql-stored steps in a camel route

我最近加入了一个项目,其中许多 autosys 作业被 camel 路线取代。大多数处理流程遵循相同的模式:

实现存储过程调用的最简单方法是使用 sql-stored 组件。假设我有这条路线:

from("file://d:/temp/in/?include=myFile*.csv")
.process("myHeaderSetter")
.choice()
    .when(header("myheader")).to("sql-stored:proc_1()?dataSource=#dataSource")
    .otherwise().to("sql-stored:proc_2()?dataSource=#dataSource")
.end()
.to("reportGenerator")
.to("file://d:temp/out/?fileName=report.txt");

每个处理器都经过很好的单元测试,但我们希望确保路由逻辑符合我们的预期。存储过程可能需要一段时间才能执行,并且 运行 设置真实路径不是单元测试的选项部分,因此我需要一种方法来测试存储过程是否被调用而不实际让它们到达 运行.

那么像上面这样对路由进行单元测试的好方法是什么。

提前感谢您的意见

在测试时查看 advice-with (http://camel.apache.org/advicewith.html),因为您可以使用它用其他位替换部分路由,例如路由到模拟而不是 sql