【问题标题】:Testing fragment creation and expire fragment in Rails (3.0.7)在 Rails (3.0.7) 中测试片段创建和过期片段
【发布时间】:2011-11-14 16:36:06
【问题描述】:

我正在尝试在我的应用程序中实现片段缓存。它显示了很多很少更改的数据,因此我认为片段缓存将是解决我一直遇到的一些性能问题的最佳解决方案。

我正在使用 Rail 的内置片段缓存和缓存清除器,但我似乎找不到任何测试片段创建/过期的好方法(使用 rspec 和朋友)。

任何帮助将不胜感激。


澄清:我真正想要测试的是适当的片段是否已过期,而不是任何特别的东西进出缓存。

【问题讨论】:

  • IMO 你不应该测试过期,因为该行为已经在 Rails 中测试过,事实上,默认情况下缓存在测试环境中是禁用的,所以也许你应该测试实际触发的方法或操作缓存创建或过期。
  • 我真正想测试的是,无论何时调用某个操作,相应的缓存都会过期。我真的不在乎什么(如果缓存中有任何内容)。
  • 我也想测试一下,因为在我的情况下,所需的片段不会过期。

标签: ruby-on-rails ruby fragment-caching


【解决方案1】:

使用 mocha 会是这样的:

UserController.any_instance.expects(:expire_fragment).with('cache_key')

我们在这个测试中唯一关心的是该方法实际上是用适当的参数调用的,而不是如果该方法确实完成了这项工作。

用于rspec:

it 'expires the awesome user cache' do
  UserController.any_instance.expects(:expire_fragment).with('awesome_user_cache').once

  post :create, id: user.id, ect...
end

【讨论】:

    猜你喜欢
    • 2022-12-16
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 2019-04-05
    相关资源
    最近更新 更多