你如何对Apache Cache Timer路由进行单元测试?

3

使用Apache Camel 2.9.1

我该如何对以下内容进行单元测试?

public class MyRoute extends RouteBuilder {
    @Override
    public void configure() throws Exception {

         from("timer.something?delay=0?repeatCount=1")
             // do some stuff
             .to("{{some.endpoint}}")
             .end()

         from("timer.somethingelse?delay=3000&period=1000")
             // do some stuff
             .to("{{some.other.endpoint}}")
             .end
    }
}
2个回答

3
这里需要进行单元测试的是什么?对于计时器组件进行单元测试(我的意思是测试它是否已触发以及其属性是否按照预期工作)是没有意义的:Camel团队已经完成了这项工作。有逻辑意义的是对“// 进行一些操作”部分进行单元测试,你可以通过模拟端点来完成。你的第一个路由将自动启动,而第二个路由将在初始延迟后启动。你需要等待至少那么长的时间才能断言任何内容。在这种情况下,我通常会从属性文件中读取端点属性。
from("timer:somethingelse?{{2nd.timer.properties}}")

并且可以设置为

2nd.timer.properties=delay=3000&period=1000 //in prod
2nd.timer.properties=delay=0 //during tests

所以这个也会在启动时触发。希望能够帮到您。
Gergely

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接