Java中间件mock_Java单元测试:使用RabbitMQ mock库完成消息生产和消费的mock模拟

单元测试第二篇,演示在单元测试时,RabbitMQ生产者和消费者的mock。

相关代码已经放在Github上:源代码

要注意的是,因为不是真实的消息队列中间件,只是进程内mock,

因此,生产的消息无法被其它服务(进程)消费,消费者也无法收到真实的MQ消息。

下面简述开发过程:

1、首先,还是正常建立项目,并有常规的生产消息或消费消息的业务逻辑;

2、项目添加mock库的引用,打开pom.xml,添加:

com.github.fridujo

rabbitmq-mock

1.1.1

test

注: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

来源: https://blog.csdn.net/youbl/article/details/110294743

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值