如何禁用缓存清扫器以进行测试

时间:2011-08-24 07:37:05

标签: ruby-on-rails ruby-on-rails-3 unit-testing testing observers

我正在使用扫地机观看模型并使用snogmetrics进行一些记录:

class UserSweeper < ActionController::Caching::Sweeper
  observe User

  def after_create(user)
    km.identify(user.email)
  end
end

我正在使用扫地机而不是观察者,因为snogmetrics需要会话以便正常运行。

然而,在测试时,snogmetrics完全失败

NoMethodError: undefined method `identify' for nil:NilClass

如何禁用扫地机进行单元测试?谢谢!

2 个答案:

答案 0 :(得分:0)

km在哪里定义?根据我的看法,它没有在你的user_sweeper中定义,因此无论你所处的环境如何,它都会失败。

答案 1 :(得分:0)

我能够在测试期间使用no-peeping-toms gem来阻止观察者。

注意:这也适用于rake任务。我遇到了一个问题,即在迁移过程中调用了观察者,这就解决了它。