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 のスタブ化/モック化のための別のアプローチにもオープンです。