48

Rails.cacheRails 3.2 アプリを使用して、id/path マッピングをキャッシュします。一部のマシンでは問題なく動作しますが、他のマシンでは値が間違っています。原因を突き止めるのは難しいので、それ自体についていくつか質問がありRails.cacheます。テスト間でパージされますか? 開発モードでキャッシュされた値がテストモードで使用される可能性はありますか? パージされていない場合、スペックを実行する前にどのようにパージできますか?

私のキャッシュストアの構成は次のとおりです。

#in: config/environments/development.rb
config.cache_store = :memory_store, {:size => 64.megabytes}

#in: config/environments/production.rb
# config.cache_store = :mem_cache_store
4

2 に答える 2

58

追加:

before(:all) do
  Rails.cache.clear
end

各スペックファイルが実行される前にキャッシュをクリアします。

追加:

before(:each) do
  Rails.cache.clear
end

各仕様の前にキャッシュをクリアします。

これをブロックspec/spec_helper.rb内に配置RSpec.configureして、グローバルに適用することができます (spec ファイルまたはケースごとに分散させるよりも推奨されます)。

デフォルトでは、RSpec はそのキャッシュを自動的にクリアしません。

于 2012-11-09T14:19:22.857 に答える