cod*_*ith 5 java spring unit-testing jms javabeans
我构建了一个接收JMS消息(@JmsListener)的Spring应用程序.在开发期间,我想将一些消息发送到侦听器侦听的JMS队列,因此我编写了一个发送一些消息的单元测试(JmsTemplate).在这个单元测试中,我使用@SpringBootTest和@RunWith(SpringRunner.class)加载应用程序上下文(数据源的bean等).
但是,当单元测试开始时,它还会加载jms监听器bean,它直接开始使用我的新消息.
我想在此测试场景中禁用此jms侦听器bean,以便将消息添加到队列中.然后,我可以启动主应用程序并观察它们被消耗.
我该怎么做呢?
我想我也可以问一下如何禁用bean.
提前致谢.
您可以使用配置文件来解决此问题.
对于您的侦听器,添加@Profile注释:
@Profile("!test-without-jmslistener")
public class JmsListenerBean {
...
}
Run Code Online (Sandbox Code Playgroud)
这告诉Spring,如果配置文件"test-without-jmslistener" 未激活(感叹号否定条件),它应该只创建此bean的实例.
在单元测试类中,添加以下注释:
@ActiveProfiles("test-without-jmslistener)
public class MyTest {
...
}
Run Code Online (Sandbox Code Playgroud)
现在,Spring测试运行器将在运行测试之前激活此配置文件,Spring将不会加载您的bean.
| 归档时间: |
|
| 查看次数: |
999 次 |
| 最近记录: |