使用 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) 进行单元测试的主要内容,如果未能解决你的问题,请参考以下文章

使用 Play 框架的 JMS/ActiveMQ 异常

使用Jmeter针对ActiveMQ JMS Point To Point压力测试

敲重点啦!| Jmeter测试ActiveMQ服务

Web Socket 与 JMS 或 Activemq [关闭]

消息队列ActiveMQ的使用详解

Jms之ActiveMQ