gpt4 book ai didi

ruby-on-rails - 如何使用 rSpec 测试 Rails 片段缓存?

转载 作者:行者123 更新时间:2023-12-04 07:37:44 24 4
gpt4 key购买 nike

我非常广泛地使用片段缓存,并且遇到了一些陷阱,其中缓存中捕获了意外对象和/或片段没有按原计划过期。

我认为这将是请求规范的主要候选者,但我不确定:

  1. 需要做什么来模拟(高效)触发缓存的场景。
  2. 需要在测试环境中进行哪些调整以允许缓存。
  3. 缓存会跨多个规范持续存在还是 rspec 会自动丢弃每个规范之间的缓存?
  4. 最重要的是,是否有一种方法可以确定是否实际提供了缓存?

最佳答案

  1. 在同一个测试用例中发出两个请求是最现实的方式。
  2. 您需要在测试环境中启用缓存,默认情况下它仅在生产环境中启用。理想情况下,并非每个测试套件都需要启用缓存,因此您需要在套件之前/之后打开/关闭它。看到这个问题:Optionally testing caching in Rails 3 functional tests
  3. 这取决于缓存片段的存储层,但 Rails.cache.clear 应该足够智能。我认为在任何情况下您都不会希望缓存跨规范持续存在,因为污染会使事情变得困惑。
  4. 如果您的片段进行了数据库调用,请在您的测试中 stub 数据库连接,第一次返回假结果,第二次引发异常。这可以推广到其他慢速调用(例如网络请求)。

关于ruby-on-rails - 如何使用 rSpec 测试 Rails 片段缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9346862/

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