如何禁用缓存清理程序以进行测试

发布于 2024-11-30 21:24:31 字数 407 浏览 2 评论 0原文

我正在使用扫地机来观看模型并使用 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

如何禁用单元测试的扫描器?谢谢!

I'm using a sweeper to watch a model and do some logging with snogmetrics:

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

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

I'm doing this with a sweeper instead of an observer because snogmetrics needs the session in order to function properly.

However, while testing, snogmetrics utterly fails

NoMethodError: undefined method `identify' for nil:NilClass

How can I disable the sweeper for unit tests? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

嗳卜坏 2024-12-07 21:24:31

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

Where is km defined? From what I see, it's not defined in your user_sweeper so it will fail regardless the environment you're in.

终陌 2024-12-07 21:24:31

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

注意:这也适用于 rake 任务。我在迁移过程中遇到了观察员被调用的问题,这解决了它。

I was able to use the no-peeping-toms gem to block observers during testing.

NOTE: This also works for rake tasks. I had an issue with observers being called during a migration and this solved it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文