3小时带你实现Redis分布式锁(二)学习笔记 day10

这篇博客介绍了如何通过单元测试来验证Redis分布式锁的实现,强调了在单元测试中不应依赖第三方组件,而是使用gomock创建mock客户端。文章详细讲解了gomock的安装和使用,以及如何在测试中生成mock实现,最后展示了简单的Go测试模板和测试代码。
摘要由CSDN通过智能技术生成

单元测试

一、测试锁的实现

从严格意义上来说,单元测试不能依赖于任何的第三方组件,而只能使用mock工具

单元测试我们不会使用真是的Redis,而是使用gomock工具

集成测试我们会启动Redis

二、gomock

代码的核心是要获得一个redis Client。代码中的redis.Cmdable的类型,它是一个接口。本质上就是为了我们能够在测试阶段注入一个mock实现。

gomock工具可以直接安装使用,然后在本地生成mock实现。在使用gomock工具前需要安装,安装地址:go install github.com/golang/mock/mockgen@latest

如果在完整项目里面使用,需要在根目录下运行mockgen命令:mockgen -package=mocks -destination=mocks/redis_cmdable.mock.go github.com/go-redis/redis/v9 Cmdable

参数意义如下:

 packgae:指定生成代码的go代码的package的值
 destination:目标位置,这里是写到了一个文件里面
 最后github.com/go-redis/redis/v9 Cmdable则是说为该报下面的Cmdable接口生成mock代码

三、单元测试实现

简单的go测试模板

 func TestClient_TryLock(t *testing.T) {
     testCases:=[]struct{
         name string
     }{
         {
             
         },
     }
     
     for _,tc:=range te
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值