spring单元测试下模拟rabbitmq的实现
2019-05-29 18:02
726 查看
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协议的队列。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- java反射机制(三)---java的反射和代理实现IOC模式 模拟spring
- Spring 利用springIOC和DI实现MVC的模拟例子
- 模拟实现单元测试中的异步测试
- rabbitMq与spring boot搭配实现监听
- 利用java反射机制模拟spring IOC原理的实现
- Spring中BeanFacory的模拟实现(ClassPathXMLApplicationContext)
- windows7下RabbitMQ的安装,并配置springcloud config实现自动刷新
- springboot 和 rabbitmq 实现同步和异步队列
- 简单模拟 spring的bean容器的实现
- SpringBooot整合RabbitMq加spring的ApplicationEvent实现订阅消息的异步处理
- java反射机制(三)---java的反射和代理实现IOC模式 模拟spring
- [RabbitMQ]15_RabbitMQ学习之spring整合发送同步消息(注解实现)
- 注解形式实现SpringBoot结合RabbitMq
- [转]模拟HttpContext 实现ASP.NET MVC 的单元测试
- java反射机制(三)---java的反射和代理实现IOC模式 模拟spring
- Spring 架构的简单模拟实现
- (转)RabbitMQ学习之spring整合发送异步消息(注解实现)
- Spring-rabbitmq 实现RPC 风格调用实例
- 模拟HttpContext 实现ASP.NET MVC 的单元测试