我有一个规范,可以在禁用缓存和启用缓存时测试动作缓存。似乎测试执行的顺序会影响它们是否通过。
it "should not cache the index page when we're not caching" do
ActionController::Base.perform_caching = false
HomeController.caches_action :index
Rails.cache.clear
ActionController::Base.cache_store.exist?(:index_cache_path).should be_false
get :index
ActionController::Base.cache_store.exist?(:index_cache_path).should be_false
end
it "should cache the index page when we're caching" do
ActionController::Base.perform_caching = true
HomeController.caches_action :index
Rails.cache.clear
ActionController::Base.cache_store.exist?(:index_cache_path).should be_false
get :index
ActionController::Base.cache_store.exist?(:index_cache_path).should be_true
end
当以上述顺序运行测试时,最后一个测试失败,因为 cache_store 在最后一个期望中不存在。我很难理解为什么无缓存测试会影响缓存测试。有谁知道出了什么问题?