我最近加入了一个项目,其中许多 autosys 工作被骆驼路线取代。大多数处理流程遵循相同的模式:
- 从某个文件夹中读取文件
- 将某种反序列化应用到 java 结构中
- 根据 java 结构中包含的某些值调用存储过程或其他过程
- 将处理结果发送给第三方消费者
实现存储过程调用的最简单方法是使用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");
每个处理器都经过了很好的单元测试,但我们希望确保路由逻辑按预期进行。存储过程可能需要一段时间才能执行,并且运行真正的路由不是单元测试的一个选项部分,所以我需要一种方法来测试存储过程是否被调用而不实际运行它们。
那么像上面这样对路由进行单元测试的好方法是什么。
预先感谢您的投入