内容简介:总结:通过上面的几行代码,我们可以对rabbitmq队列在测试环境中去模拟,方便了我们的测试,而这种方法比
gradle添加引用
compile 'org.springframework.boot:spring-boot-starter-amqp' testCompile 'com.github.fridujo:rabbitmq-mock:1.0.10'
添加bean对象
/** * 模拟rabbitmq. */ @ActiveProfiles("test") @Component public class RabbitMqMock { @Bean public ConnectionFactory connectionFactory() { return new CachingConnectionFactory(MockConnectionFactoryFactory.build()); } }
添加测试的队列
public static final String LIND_EXCHANGE = "test.basic.exchange"; public static final String LIND_QUEUE_ROUTEKEY = "test.basic.*"; public static final String LIND_QUEUE_ROUTEKEY1 = "test.basic.a1"; public static final String LIND_QUEUE_ROUTEKEY2 = "test.basic.a2"; /** * 创建普通交换机. */ @Bean public TopicExchange lindExchange() { return (TopicExchange) ExchangeBuilder.topicExchange(LIND_EXCHANGE).durable(true) .build(); } @Bean public Queue key1() { return new Queue(LIND_QUEUE_ROUTEKEY1); } @Bean public Queue key2() { return new Queue(LIND_QUEUE_ROUTEKEY2); } /** * 绑定了routekey,一个routekey可以被多个队列绑定,类似于广播. * * @return */ @Bean public Binding bindBuildersRouteKey1() { return BindingBuilder.bind(key1()) .to(lindExchange()) .with(LIND_QUEUE_ROUTEKEY); } /** * bind. * * @return */ @Bean public Binding bindBuildersRouteKey2() { return BindingBuilder.bind(key2()) .to(lindExchange()) .with(LIND_QUEUE_ROUTEKEY); } @Autowired private RabbitTemplate rabbitTemplate; /** * 发送拨打电话消息. */ public void publish(String message) { try { rabbitTemplate .convertAndSend(MqConfig.LIND_EXCHANGE, MqConfig.LIND_QUEUE_ROUTEKEY, message); } catch (Exception e) { e.printStackTrace(); } } /** * subscriber. * * @param data . */ @RabbitListener(queues = MqConfig.LIND_DEAD_QUEUE) public void customerSign(String data) { try { logger.info("从队列拿到数据 :{}", data); } catch (Exception ex) { logger.error("签约同步异常", ex); } }
总结:通过上面的几行代码,我们可以对rabbitmq队列在测试环境中去模拟,方便了我们的测试,而这种方法比 org.apache.qpid:qpid-broker:6.1.2
这个包要方便的多,当然这个包也支持其它的qpid协议的队列。
以上所述就是小编给大家介绍的《spring单元测试下模拟rabbitmq》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Vue 应用单元测试的策略与实践 02 - 单元测试基础
- Vue 应用单元测试的策略与实践 04 - Vuex 单元测试
- Vue 应用单元测试的策略与实践 03 - Vue 组件单元测试
- Angular单元测试系列-Component、Directive、Pipe 以及Service单元测试
- 单元测试,只是测试吗?
- 单元测试和集成测试业务
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
大型网站系统与Java中间件开发实践
曾宪杰 / 电子工业出版社 / 2014-4-24 / 65.00
本书围绕大型网站和支撑大型网站架构的 Java 中间件的实践展开介绍。从分布式系统的知识切入,让读者对分布式系统有基本的了解;然后介绍大型网站随着数据量、访问量增长而发生的架构变迁;接着讲述构建 Java 中间件的相关知识;之后的几章都是根据笔者的经验来介绍支撑大型网站架构的 Java 中间件系统的设计和实践。希望读者通过本书可以了解大型网站架构变迁过程中的较为通用的问题和解法,并了解构建支撑大型......一起来看看 《大型网站系统与Java中间件开发实践》 这本书的介绍吧!