rspec テスト用にmock_redis gem を使用して redis をスタブ化しようとしています。私のrspec設定は次のようになります:
RSpec.configure do |config|
# ... various rspec config options ...
config.before(:each) do
redis_instance = MockRedis.new
Redis.stub(:new).and_return(redis_instance)
Redis::Store.stub(:new).and_return(redis_instance)
end
end
残念ながら、まだ get と set が実際の redis インスタンスに送信されているのを確認できます。redis を強制終了すると、テストはすべて失敗します。ブレークポイントを追加してみましたが、このコード ブロックが適切に実行されていることがわかります。before
また、このブロックの範囲内で、Redis.new == redis_instance
との両方Redis::Store.new == redis_instance
が真であることも確認しました。
なぜこれがうまくいかないのか、誰かが洞察を持っていますか? 私は、redis のスタブ化/モック化のための別のアプローチにもオープンです。