以 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 作为参数的单元测试功能的主要内容,如果未能解决你的问题,请参考以下文章
架构设计:系统间通信(37)——Apache Camel快速入门(中)