以 Apache Camel Exchange 作为参数的单元测试功能

Posted

技术标签:

【中文标题】以 Apache Camel Exchange 作为参数的单元测试功能【英文标题】:unit testing functions with Apache Camel Exchange as parameter 【发布时间】:2013-02-13 08:18:33 【问题描述】:

我正在做 java camel 开发,我想对一堆函数进行单元测试(junit4),并将 Exchange 作为参数传入。

例如:

public finalObject getProperty(final Exchange exchange, final String property) throws Exception 
   //all about getting property from xml message in exchange via xpath

问题: 1>我可以使用 EasyMock 模拟 Exchange 吗?以及如何将预定义的 xml 设置为交换内的传入消息?

2>如果不需要我需要设置骆驼测试吗?如何使用骆驼测试将预定义的 xml 设置为交换内的传入消息。

非常感谢。

【问题讨论】:

为什么不模拟端点并模拟它们返回的主体。见camel.apache.org/mock.htmlcamel.apache.org/testing.html我猜你最好专注于模拟端点。 @Saury:我对端点不感兴趣,我只想测试从 Exchange 获取 xml 消息。但是假设我必须锁定端点才能获得模拟交换,我如何在交换中设置内容 xml 消息? 【参考方案1】:

你也可以像这样创建一个新的默认交换:

    CamelContext ctx = new DefaultCamelContext(); 
    Exchange ex = new DefaultExchange(ctx);

【讨论】:

感谢这种简单易用的方法来模拟和单元测试 Camel 处理器

以上是关于以 Apache Camel Exchange 作为参数的单元测试功能的主要内容,如果未能解决你的问题,请参考以下文章

Apache Camel:如何存储变量以供以后使用

apache camel - 向死信队列添加消息警报

架构设计:系统间通信(37)——Apache Camel快速入门(中)

Apache Camel Azure 队列:发送消息时消息正文为空

Apache Camel 压缩包

架构设计:系统间通信(38)——Apache Camel快速入门(下1)