1

这是我的用户模型,我不知道如何为 active_and_approved_creative_count 缓存测试编写测试。

用户.rb

class User < ActiveRecord::Base
  class << self
    def active_and_approved_creative_count
      Rails.cache.fetch('active_and_approved_creative_count', :expires_in => 30.minutes) do
        User.active_and_approved_creative.count
      end
    end
   ...
   scope :active_and_approved_creative ,where("user_type = ? AND (membership_cancelled IS NULL OR membership_cancelled = false)", :approved_creative)
end
4

1 回答 1

1

你可能可以:

  1. 访问active_and_approved_creative_count初始化缓存并验证初始值
  2. 执行将增加计数的操作
  3. 使用TimeCop向上移动 29 分钟
  4. 验证计数仍然是缓存值
  5. 再上一两分钟
  6. 验证计数现在是否已增加

有人可能会争辩说这是在不必要地测试 Rails 内部,请考虑简单地执行第 1 步是否就足够了。

于 2013-05-10T06:52:44.163 回答