纯Python实现Redis模拟或数据库包装以进行单元测试

4 投票
1 回答
1207 浏览
提问于 2025-04-18 09:48

有没有一种纯Python实现的Redis模拟器,不使用Ctypes,就像fakeredis那样?

我这样问主要是因为我在Android上开发Python应用(如果你去看我在Android Stack Exchange上的问题,你就会明白原因),我需要一种方法来测试或模拟Redis的功能,而不需要真正的Redis。

等我完成后,我会调整到真正的绑定,然后上传到服务器和/或我的Github账户,进行另一个测试以确保安全。

性能、持久性和Redis的其他好处对我来说并不重要,因为我只想能够执行例如:

mockredis.do('SET', 'test:1', 'hello world')

这个模拟器只需将SET存储在内存或硬盘上,以便稍后通过

mockredis.do('GET', 'test:1')

来检索,但就仅此而已。

另外,如果有一个围绕纯Python数据库(例如Sqlite)的包装器,能像“假Redis”那样工作也可以,虽然我没有找到这样的东西。比如说nosqlite,但用Redis命令代替文档数据库的命令。

最后,我的简短问题是:

有没有一种纯Python(不使用Ctypes)的Redis模拟器,或者一个围绕纯Python数据库的包装器,能像Redis那样工作,或者有没有办法自己在Sqlite/Shelve/TinyDB/Buzhug等之上实现这些功能?

1 个回答

0

有人正在这个项目上努力,地址是 locationlabs/mockredis,它可以作为你 Python Redis 客户端的替代品。

撰写回答