Java单元测试:使用RabbitMQ mock库完成消息生产和消费的mock模拟
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java单元测试:使用RabbitMQ mock库完成消息生产和消费的mock模拟,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1172字,纯文字阅读大概需要2分钟。
内容图文
![Java单元测试:使用RabbitMQ mock库完成消息生产和消费的mock模拟](/upload/InfoBanner/zyjiaocheng/620/b087979be576435bbe9499a535b47903.jpg)
单元测试第二篇,演示在单元测试时,RabbitMQ生产者和消费者的mock。
相关代码已经放在Github上:源代码
要注意的是,因为不是真实的消息队列中间件,只是进程内mock,
因此,生产的消息无法被其它服务(进程)消费,消费者也无法收到真实的MQ消息。
下面简述开发过程:
1、首先,还是正常建立项目,并有常规的生产消息或消费消息的业务逻辑;
2、项目添加mock库的引用,打开pom.xml,添加:
<dependency>
<groupId>com.github.fridujo</groupId>
<artifactId>rabbitmq-mock</artifactId>
<version>1.1.1</version>
<scope>test</scope>
</dependency>
注:scope为test,是仅在单元测试时引入,运行时并不引入。
3、application.yml配置文件无需修改,会自动在Bean生成拦截。
注:为保险起见,建议新建unittest的配置节,把mq的ip改掉,避免mock不生效,导致误发或报错
4、在单元测试的package下新建配置类,拦截RabbitMQ的拦截类:
@Configuration
public class MockRabbitConfig {
@Bean
ConnectionFactory connectionFactory() {
return new CachingConnectionFactory(new MockConnectionFactory());
}
}
5、好了,现在可以直接对项目进行测试了,所有的生产者消息,都会发到内存,而不会到真正的RabbitMQ。
如果项目里有消费者,消费自己项目里生产的消息,也能正常收到消息,并消费。
如果你在运行时有问题,可以下载上面的源码,进行对比,看看你的代码哪里有问题。
内容总结
以上是互联网集市为您收集整理的Java单元测试:使用RabbitMQ mock库完成消息生产和消费的mock模拟全部内容,希望文章能够帮你解决Java单元测试:使用RabbitMQ mock库完成消息生产和消费的mock模拟所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。