0

我们正在为我们的模型使用 Redisco,我正在为我们的模型编写一些测试,但是 redis 一直在填满,所以对于每个测试,更多的数据会添加到 reddis。

有没有办法为每个测试清除 Redis,以及测试时的最佳实践是什么(使用 redis 和 redisco)

- 编辑 -

这是我最终采用的解决方案,我想与可能有相同问题的其他人分享

要确保每个测试用例都在干净的 Redis 实例上运行,请通过运行来启动每个测试用例

redis = Redis()
redis.flushall()

正如人们在下面评论的那样,请确保您不要针对 Redis 的生产实例运行测试

4

2 回答 2

0

我建议运行第二个 redis 实例进行测试(例如,在不同的端口上......),这样您在运行测试时也不会意外地从 redis 中删除任何生产数据。

然后,您可以使用BaseTestClass覆盖您项目设置的自定义(在该setUp方法中 - 您也可以在那里清空您的 redis 数据库),以便它们指向另一个 redis 实例(希望您已经在项目设置中定义了您的 redis 连接)并拥有所有您的测试类继承自这个基类。

于 2012-08-03T12:29:29.437 回答
0

处理诸如在单元测试中连接到数据库之类的副作用的标准方法是在测试期间提供数据层的模拟实现。这可以通过多种方式完成,您可以使用不同的 redis 实例,或者动态覆盖方法来向您的测试报告,而不是实际操作数据库等。

依赖注入是用于此类问题的一种模式,在 Java 等静态语言中更常见,但也有 Python 工具,请参阅http://code.google.com/p/snake-guice/

于 2012-08-03T12:31:37.250 回答