通过等待文件到达开始测试Camel Route

时间:2015-07-28 15:06:38

标签: java spring unit-testing apache-camel

我有一个Camel路由,等待在目录中接收zip文件。它将其解压缩然后迭代它包含的文件,在将它们发送到多个消息队列之一之前解析它们的内容。

我已经有了端到端工作的路线,但现在我想编写单元测试来处理可能出现的不同情况。而且我在第一道障碍中摔倒了。

我在互联网上找到的所有单元测试似乎都是从路由中第一个组件收到的消息开始的。我需要模拟文件的存在。

我的路由是在Spring上下文文件中配置的,我可以看到我的路由被建议(例如:Adviced endpoint [file:///tmp/dta/xml_source?antInclude=*.zip&move=.done&moveFailed=.error] with mock endpoint [mock:file:/tmp/dta/xml_source]

我只是不知道如何将其付诸行动。

2 个答案:

答案 0 :(得分:1)

将建议从mock:替换为seda:direct:,并使用ProducerTemplate向初始端点发送消息。

答案 1 :(得分:1)

您可以简单地建议您的消费者(即FILE)指向具有特定文件名的测试资源目录,并确保noop = true,因此测试不会删除该文件。 这样,您就不会模拟此端点,并且您的路由就像在真实场景中一样运行。

replaceFromWith("file:///TEST_RESOURCE_DIRECTORY/dta/xml_source?antInclude=*.zip&move=.done&moveFailed=.error&noop=true")