gpt4 book ai didi

ruby-on-rails - 单个测试的 Rails/RSpec 切换缓存

转载 作者:行者123 更新时间:2023-12-04 11:36:18 24 4
gpt4 key购买 nike

所以在我的应用程序中,我可以禁用所有测试的缓存,这将是理想的,但显然有许多遗留测试依赖于缓存的功能。有没有办法为单个 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

最佳答案

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

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

https://www.relishapp.com/rspec/rspec-core/docs/hooks/filters

关于ruby-on-rails - 单个测试的 Rails/RSpec 切换缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31929514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com