0

モデルにRediscoを使用しており、モデルのテストをいくつか書いていますが、redisがいっぱいになり続けるため、テストごとにさらに多くのデータがreddisに追加されます。

テストごとに Redis をクリアする方法はありますか? テスト時のベスト プラクティスは何ですか (redis と redisco を使用)

- 編集 -

これは私が最終的に行った解決策です。これを同じ質問を持つ可能性のある他の人と共有したいと思います

各テスト ケースがクリーンな Redis インスタンスで実行されていることを確認するには、次のコマンドを実行して各テスト ケースを開始します。

redis = Redis()
redis.flushall()

人々が以下にコメントしているように、Redis の本番インスタンスに対してテストを実行しないようにしてください。

4

2 に答える 2

0

テスト用に2番目の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 に答える