在RSpec / Capybara请求规范中测试Dalli / Mamcache故障的最佳方法是什么来验证我们的应用程序在Dalli服务器出现故障时仍能正常工作?
我们使用Dalli(在Heroku应用程序上)来处理我们的 生产环境 应用程序中某些帐户数据的缓存,例如config / environments / production.rb包含:
config.cache_store = :dalli_store
在许多地方的应用程序中,我们使用 Rails.cache.write
和 Rails.cache.fetch
在相当规律的基础上,Heroku Memcachier附加服务变得无响应,我们在日志中看到以下内容:
app[web.2]: xxx.xxx.xxx.heroku.prod.memcachier.com:xxxx failed (count: 0)
我们有一些请求规范测试一些相当长的用户交互场景,涵盖了Rails缓存的所有用途,现在需要添加一些额外的规范来测试这些场景在远程Dalli存储被破坏时的行为...例如,我们想要当我们看到不可避免的Memcachier服务失败时,添加验证整个应用程序的规范“抢救” .
目前,config / environments / test.rb没有config.cache_store的设置
1 回答
不知道这是不是最好的方式,但我们做的是:
当我们在一些地方暂时禁用我们的异常处理并运行规范时,规范会失败(如预期的那样) . 所以它似乎做了伎俩 .