Ruby on rails 如何使用rspec测试rails中的缓存过期?

Ruby on rails 如何使用rspec测试rails中的缓存过期?,ruby-on-rails,caching,rspec,cache-expiration,Ruby On Rails,Caching,Rspec,Cache Expiration,我想在Rails视图中测试缓存过期。视图如下所示: # products/index.html.erb <% @products.each do |product| %> <% cache product do %> <%= render product %> <% end %> <% end %> def cache_version [touched_at, updated_at].compact.map(&am

我想在Rails视图中测试缓存过期。视图如下所示:

# products/index.html.erb
<% @products.each do |product| %>
  <% cache product do %>
    <%= render product %>
  <% end %>
<% end %>
def cache_version
  [touched_at, updated_at].compact.map(&:utc).max.to_s(:usec)
end
#1
的问题是,有人可能会更改产品的部分,这样它就不会使用
缓存版本
方法。例如,从rails
5.1
升级到
5.2
后,缓存机制已更改为使用
cache\u版本
,而不是
cache\u键

如果有人变了怎么办


您会选择哪种方式来测试缓存过期,为什么?

缓存密钥是如何生成的?如果您依赖默认的rails代码,我甚至不会对此进行测试。如果您有一个自定义方法来创建缓存密钥,那么请测试该方法谢谢您的问题@arieljuod。我澄清了我的问题