针对ActiveMQ的单元测试

3
我使用maven来运行单元测试。每次都需要记得先启动ActiveMQ,因为单元测试需要向队列发送JMS消息并消费它以进行断言。我想知道是否有一些maven插件可以自动启动ActiveMQ进行单元测试?
简而言之,是否有可能在运行单元测试之前启动ActiveMQ。 我搜索了一些提示。但按照那种方式,我应该运行一个mvn命令来启动ActiveMQ,这不是自动运行单元测试的方式。
提前感谢。
1个回答

4

一种测试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();
}

请阅读更多关于此主题的内容。

点击此处


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接