Rspec 测试 rack_cache

Rspec tests of rack_cache

我正在使用 rack_cache 通过 Redis 缓存一些响应。我想用 rspec 进行测试,这样我就可以确定缓存是否有效。我可以这样做:

config.action_dispatch.rack_cache = true

问题是因为我想在单个测试中设置此设置,而不是针对整个应用程序。

对于高级缓存,我们可以使用 around bock:

config.around(:each, :caching) do |example|
  caching = ActionController::Base.perform_caching
  ActionController::Base.perform_caching = example.metadata[:caching]
  example.run
  ActionController::Base.perform_caching = caching
end

有没有办法为机架缓存做类似的事情?

我在 运行 测试之前删除了 redis 缓存:

redis_keys = $redis.keys('*')
$redis.del(redis_keys) if redis_keys.count > 0