针对ActiveMQ的单元测试

时间:2016-01-28 02:09:25

标签: maven unit-testing activemq

我使用maven进行单元测试。每次我必须记住首先启动ActiveMQ,因为单元测试需要将JMS消息发送到Queue并将其用于断言。我想知道是否有一些maven插件可以自动启动ActiveMQ进行单元测试?

很短。是否可以在运行单元测试之前启动ActiveMQ。 我用Google搜索并找到了一些提示。但按照那种方式。我应该运行一个mvn命令来启动ActiveMQ,这不是自动运行单元测试的方法

先谢谢

1 个答案:

答案 0 :(得分:3)

从java测试AMQ流的简写是连接到vm://localhost?broker.persistent=false

这将创建并启动一个新的代理(如果没有人正在运行)。您将不需要锅炉板代码来创建,配置和启动/停止代理。

但是,假设您没有对要测试的默认值进行重大配置更改。在这种情况下,您可能需要手动配置和启动代理。

您可以通过Junit测试中的@Before方法启动代理来实现此目的。

BrokerService broker;

@Before
public void setupAMQ(){

   broker = new BrokerService();
   TransportConnector connector = new TransportConnector();
   connector.setUri(new URI("tcp://localhost:61616"));
   broker.addConnector(connector);
   // More config here!
   broker.start()
}

@After
public void tearDownAMQ(){
   broker.stop();
}

Read more about the topic