Spring boot JmsTemplate的Spring Boot 2.0集成测试

Spring boot JmsTemplate的Spring Boot 2.0集成测试,spring-boot,testing,integration-testing,solace,Spring Boot,Testing,Integration Testing,Solace,我有一个非常简单的MessageHandler类,由于Spring Boot,它在运行时只需以下几行代码和配置即可工作: 味精处理程序 @组件 公共类MessageHandler{ @JmsListener(destination=“${solace.jms.queueName}”) 公共无效处理消息(消息消息消息){ MessageHeaders hdrs=msg.getHeaders(); 等 主类 @springboot应用程序 公共类应用程序实现CommandLineRunner{ 公

我有一个非常简单的MessageHandler类,由于Spring Boot,它在运行时只需以下几行代码和配置即可工作:

味精处理程序

@组件
公共类MessageHandler{
@JmsListener(destination=“${solace.jms.queueName}”)
公共无效处理消息(消息消息消息){
MessageHeaders hdrs=msg.getHeaders();
等
主类

@springboot应用程序
公共类应用程序实现CommandLineRunner{
公共静态void main(字符串[]args){
SpringApplication.run(Application.class,args);
}
配置

    solace.jms.client-name=eeeee
    solace.jms.client-password=dddd
    solace.jms.client-username=ccccc
    solace.jms.msg-vpn=bbbb
    solace.jms.host=smf://aaaaa.xx.yy.com:8000
    solace.jms.queueName=ffffff
全聚甲醛


4.0.0
废话
布拉布拉赫
1.0-快照
UTF-8
诸如此类的申请
1.8
1.8
1.8
2.3.1
com.solace.spring.boot
solace jms spring启动父级
2.0.0
聚甲醛
假如
org.springframework.boot
SpringBootStarterWeb
2.0.5.1发布
org.springframework.boot
spring启动程序日志记录
com.solace.spring.boot
solace jms弹簧启动机
2.0.0
org.springframework.boot
spring启动程序日志记录
org.springframework.boot
spring-boot-starter-log4j2
2.0.5.1发布
org.springframework.boot
弹簧靴启动器jdbc
2.0.5.1发布
com.h2数据库
氢
1.4.197
com.sybase
jconn4
16
org.liquibase
液化酶核心
3.5.3
测试
org.springframework.boot
弹簧靴开发工具
2.0.5.1发布
测试
org.springframework.boot
弹簧起动试验
2.0.5.1发布
测试
android json
com.vaadin.external.google
黄瓜
黄瓜爪哇
${cumber.version}
测试
黄瓜
黄瓜刺柏
${cumber.version}
测试
黄瓜
黄瓜之春
${cumber.version}
测试
org.springframework.boot
springbootmaven插件
2.0.5.1发布
真的
假的
重新包装
我现在想知道的是如何在编译时测试它。我的具体问题是如何将JmsTemplate自动连接为模拟实例,以及应该在测试应用程序属性中使用哪些配置值


谢谢

您可以使用嵌入式ActiveMQ实例代理进行测试

发件人:

当ActiveMQ在类路径上可用时,Spring Boot还可以配置ConnectionFactory。如果存在代理,则会自动启动和配置嵌入式代理(前提是没有通过配置指定代理URL)

看一看作为Spring集成高级测试示例一部分的。请注意,这不同于集成测试(尽管名称不同),后者涉及连接到实际的代理。模拟测试不涉及任何代理(外部或嵌入式),包括有效和无效的消息测试


作为替代方案,您可以使用Spring Cloud Stream来处理消息。这是构建事件驱动的Spring Boot微服务的一种更简单/更新的方法,并且避免了在使用
JmsTemplate
时必须编写样板消息代码。Solace broker有一个可用的示例。此外,您还可以模拟
MessageHandler和测试。有关更多详细信息,请参阅。

感谢您的快速响应!但现在我有solace jms Spring boot starter和Spring boot starter activemq依赖项。我可以使用范围测试标记activemq,但无法使用范围运行时标记jms。我如何告诉Spring引导是否使用MQ依赖项(如果可用)?如果不显示maven pom文件,则很难讨论。抱歉,它相当大,但现在添加了