We cache id/path mapping using Rails.cache
in a Rails 3.2 app. On some machines it works OK, but on the others values are wrong. The cause is hard to track so I
A more efficient (and easier) method is to set the test environment's cache to use NullStore:
# config/environments/test.rb:
config.cache_store = :null_store
The NullStore ensures that nothing will ever be cached.
For instance in the code below, it will always fall through to the block and return the current time:
Rails.cache.fetch('time') { Time.now }
Also see the Rails Caching guide: http://guides.rubyonrails.org/caching_with_rails.html#activesupport-cache-nullstore
Add:
before(:all) do
Rails.cache.clear
end
to have the cache cleared before each spec file is run.
Add:
before(:each) do
Rails.cache.clear
end
to have the cache cleared before each spec.
You can put this inside spec/spec_helper.rb
within the RSpec.configure
block to have it applied globally (recommended over scattering it per spec file or case).
RSpec by default does not clear that cache automatically.