如何在 Go 中模拟 redis 连接

Roh*_*are 9 mocking go redis

我正在使用https://github.com/go-redis/redis包进行 Redis DB 调用。对于单元测试,我想模拟这个调用,是否有任何模拟库或方法来做到这一点?

Cha*_*osh 11

使用miniredis模拟比乍一看更容易。您不需要模拟 Get、Set、ZAdd 等每个函数。您只需启动 miniredis 并将其地址注入代码中使用的实际客户端(例如go-redis):

mr := miniredis.Run()
redis.NewClient(&redis.Options{
            Addr: mr.Addr(),
        })
Run Code Online (Sandbox Code Playgroud)

不需要进一步的嘲笑。这也使您能够无缝地使用Pipelined()TxPipelined()等等。即使miniredis没有明确公开这些方法。


Roh*_*are 6

谢谢大家的回应。我发现这个包https://github.com/alicebob/miniredis对于 redis 模拟非常有用。