0

我最近加入了一个项目,其中许多 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");

每个处理器都经过了很好的单元测试,但我们希望确保路由逻辑按预期进行。存储过程可能需要一段时间才能执行,并且运行真正的路由不是单元测试的一个选项部分,所以我需要一种方法来测试存储过程是否被调用而不实际运行它们。

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

预先感谢您的投入

4

1 回答 1

-1

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

于 2017-05-04T10:42:59.790 回答