如何在Apache Camel中对生产路线进行单元测试?
|
假设我在单独的RouteBuilder类中创建了我的路由。看起来像:
从JMS队列中获取消息
做一些转换,验证等
根据验证结果转发到特定的JMS队列,然后将某些内容保存在DB中
我想在没有JMS代理和DB的情况下对该路径进行单元测试。我知道我可以模拟我的处理器实现,但这还不够。我不想更改此路由(假设我在jar文件中获得了该类)。据我从《骆驼在行动》(6.2.6节)中了解到的,要能够使用端点模拟和其他内容,我需要更改我的路线端点定义(在本书的示例中,这是对“ mina”的更改:tcp:// miranda \“到\” mock:miranda \“等)。
是否可以在不更改路由定义的情况下完全隔离地测试流?
如果我将RouteBuilder作为一个单独的类获得,是否必须以某种方式“复制”路由定义并手动进行更改?它不是在测试错误的东西吗?
我对Camel还是很陌生,对我而言,能够在开发路线时进行隔离的单元测试真的很酷。只是为了能够改变某些东西,进行小测试,观察结果等等。
没有找到相关结果
已邀请:
3 个回复
抢垢洛韧
陷牡彭拈峰
在我的spring文件中,然后在测试类路径上的shop.properties中,我有一个stock.out = xxxx,它在运行时被替换,因此我可以使用不同的路由,一个用于运行,另一个用于测试 在多个环境中的6.1.6单元测试中有一个更好的示例
芯伶句餐绕
,看起来像
您可以像这样注入端点:
然后可以像这样测试:
这具有以下优点: 您的测试非常简单易懂,甚至不需要扩展
或其他帮助程序类
是手工创建的,因此可以确保仅创建被测路线 测试不关心生产路线URI 您仍然可以方便地将端点URI硬编码到路由类中