针对 ActiveMQ 的单元测试

Unit Test against ActiveMQ

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

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

的自动方式

在此先致谢

用于测试来自 java 的 AMQ 流的 shorthand 是连接到 vm://localhost?broker.persistent=false

这将创建并启动一个新代理(如果没有代理 运行)。您将不需要样板代码来创建、配置和 start/stop 代理。

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

您可以通过在 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.