Java 测试通过等待文件到达开始的驼峰路由
我有一个Camel路由,它等待在目录中接收zip文件。它解压它,然后迭代它包含的文件,解析它们的内容,然后将它们发送到多个消息队列中的一个 我已经找到了端到端工作的方法,但是现在我想编写单元测试来处理可能出现的不同情况。我在第一个跨栏时摔倒了 我在internet上找到的所有单元测试似乎都是从路由中的第一个组件接收到的消息开始的。我需要模拟文件的存在 我的路由是在Spring上下文文件中配置的,我可以看到我的路由正在被通知(例如:Java 测试通过等待文件到达开始的驼峰路由,java,spring,unit-testing,apache-camel,Java,Spring,Unit Testing,Apache Camel,我有一个Camel路由,它等待在目录中接收zip文件。它解压它,然后迭代它包含的文件,解析它们的内容,然后将它们发送到多个消息队列中的一个 我已经找到了端到端工作的方法,但是现在我想编写单元测试来处理可能出现的不同情况。我在第一个跨栏时摔倒了 我在internet上找到的所有单元测试似乎都是从路由中的第一个组件接收到的消息开始的。我需要模拟文件的存在 我的路由是在Spring上下文文件中配置的,我可以看到我的路由正在被通知(例如:adviced endpoint)[file:///tmp/dta
adviced endpoint)[file:///tmp/dta/xml_source?antInclude=*.zip&move=.done&moveFailed=.error],带有模拟端点[mock:file:/tmp/dta/xml\u source]
)
我只是不知道如何将其付诸实施。将
mock:
中的建议替换为seda:
或direct:
,然后使用ProducerTemplate
将消息发送到starter端点。您可以简单地建议您的消费者(即文件)指向具有特定文件名的测试资源目录,并确保noop=true,以便测试不会删除该文件。
这样,您就不会模拟该端点,并且您的路由运行与真实场景中的情况相同
replaceFromWith("file:///TEST_RESOURCE_DIRECTORY/dta/xml_source?antInclude=*.zip&move=.done&moveFailed=.error&noop=true")