ste*_*eel 7 rspec ruby-on-rails ruby-on-rails-4 rspec3
因此,在我的应用程序中,我可以禁用所有测试的缓存,这将是理想的,但显然有许多遗留测试依赖于缓存功能.有没有办法为单个RSpec测试启用Rails缓存?
就像是:
before(:each) do
@cache_setting = Rails.cache.null_cache
Rails.cache.null_cache = true
end
after(:each) do
Rails.cache.null_cache = @cache_setting
end
it 'does not hit the cache' do
...
end
Run Code Online (Sandbox Code Playgroud)
在 spec_helper.rb
RSpec.configure do |config|
config.before(:example, disable_cache: true) do
allow(Rails).to receive(:cache).and_return(ActiveSupport::Cache::NullStore.new)
end
config.after(:example, disable_cache: true) do
allow(Rails).to receive(:cache).and_call_original
end
end
Run Code Online (Sandbox Code Playgroud)
在 xxx_spec.rb
RSpec.describe "a group without matching metadata" do
it "does not run the hook" do
puts Rails.cache.class
end
it "runs the hook for a single example with matching metadata", disable_cache: true do
puts Rails.cache.class
end
end
Run Code Online (Sandbox Code Playgroud)
https://www.relishapp.com/rspec/rspec-core/docs/hooks/filters
| 归档时间: |
|
| 查看次数: |
1033 次 |
| 最近记录: |