2011-07-06 26 views
4

私はそうのようなクラス変数をキャッシュしようとしています:開発環境のRailsキャッシュにテスト環境データが表示されるのはなぜですか?

Rails.cache.write("@@page_types", @@page_types) 

この方法は、私がPageTypesと呼ばれているクラス内で呼び出されます。

私はレールコンソールを起動して行う場合は、次の

Rails.cache.write("@@page_types", nil) 
Rails.cache.read("@@page_types") 

私はnilを取得します。私はコンソールが開いたままにして、別のウィンドウで次の操作を行います。

すくいテスト:単位

テストが終わったとき、私は私のレールコンソールウィンドウに切り替えると

Rails.cache.read("@@page_types") 

を行うことが返されます私のテストページの種類の配列!私は彼らのテストデベロッパーからのものだと思っています。なぜなら、デベロッパーのデータはすべて非常に低いIDを持っているからです。

私はキャッシュキーにRails.envを追加することができたとしますが、2つのキャッシュが

答えて

7

は、テスト環境のための別のキャッシュバックエンドを定義します....混合すべきではないように思えます。 memory_storeは単体テストには最適です。設定/環境/ test.rbで

ActionController::Base.cache_store = :memory_store 

config.cache_store = :memory_store 
+0

ああ、素晴らしいアイデア!うまくいった:) – spilliton

関連する問題