单元测试
一、测试锁的实现
从严格意义上来说,单元测试不能依赖于任何的第三方组件,而只能使用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

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

被折叠的 条评论
为什么被折叠?



