使用 JMS (ActiveMQ) 进行单元测试
Posted
技术标签:
【中文标题】使用 JMS (ActiveMQ) 进行单元测试【英文标题】:Unit testing with JMS (ActiveMQ) 【发布时间】:2011-02-21 15:53:26 【问题描述】:如何使用 JMS 进行单元测试?这是事实吗?
我用谷歌搜索了一些东西 - JMS 的单元测试:http://activemq.apache.org/how-to-unit-test-jms-code.html - jmsTemplate:activemq.apache.org/jmstemplate-gotchas.html - mockRunner:mockrunner.sourceforge.net/
你对这些有什么好的经验和建议吗?
【问题讨论】:
【参考方案1】:我正在寻找相同的东西 我用 JMock 做过一次,用它 ypu 可以测试消息创建并结合 hamcrest 你可以实现好东西。
【讨论】:
如果您 1) 收到消息 2) 做一些技巧 3) 将消息发送到特定目的地怎么办??【参考方案2】:根据我的经验(在尝试做同样的事情之后),当您使用 JMS 时,您正在做类似的事情
1) 获取 JMS 消息 2) 从消息中提取对象 3) 用对象做一些事情
从这个角度来看,我建议你对#3 进行单元测试,但不要打扰单元测试#1 或#2——不要测试框架——专注于测试你的代码。我认为(单元)测试您的基础设施(类似 EJB 基础设施等)没有什么好处。这样的事情最好留给集成/系统测试。
【讨论】:
【参考方案3】:对于简单的集成测试,您可以运行 ActiveMQ broker in embedded mode。使用 Maven,这可以自动化,因此您甚至不必下载和安装 ActiveMQ 消息代理。
【讨论】:
以上是关于使用 JMS (ActiveMQ) 进行单元测试的主要内容,如果未能解决你的问题,请参考以下文章
使用Jmeter针对ActiveMQ JMS Point To Point压力测试