【问题标题】:How to test counter_cache with test::unit and mocha如何使用 test::unit 和 mocha 测试 counter_cache
【发布时间】:2011-01-04 10:13:21
【问题描述】:

我很好奇能否以某种方式模拟计数器缓存的测试。 现在我正在创建所有记录来测试 counter_cache。有没有什么好的做法可以有效地测试计数器缓存?

编辑: 我只是想测试一下,计数器缓存存在于某个关联上。

【问题讨论】:

  • 为什么要测试 counter_cache?您将测试框架功能。 Rails 测试套件中将对此进行测试。你的测试应该只覆盖你的应用程序,而不是它构建的框架。

标签: ruby-on-rails unit-testing mocha.js counter-cache


【解决方案1】:

当您添加 :counter_cache 选项时,ActiveRecord 定义了 2 个回调 (source code)。您可以使用 Mocha 来检查回调是否被执行。

instance.expects(:belongs_to_counter_cache_after_create_for_MODELNAME).returns(true)

【讨论】:

  • 那是一个巧妙的解决方案,我看到了这些动态方法,但我没有意识到我可以这样做。
【解决方案2】:

添加一个条目,使用 counter_cache 重新加载您的对象并检查它是否在增加。

【讨论】:

  • 这就是我正在做的事情,只是想知道我是否可以避免访问数据库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多