即使RSpec的stub_chain不包含完整的作用域链,它也会返回存根

时间:2012-03-15 13:45:40

标签: ruby-on-rails rspec2 named-scope stub

我今天遇到了RSpec规范和ActiveRecord范围的问题。

我有一个执行类似于

的代码的控制器
@customers = Customer.active.with_counts.order('name asc')

'active'和'with_counts'是Customer模型的范围。

我曾经有过像这样使用stub_chain的规范:

Customer.stub_chain(:with_counts, :order).with('name asc') { [mock_customer] }

我没想到这会成功,因为控制器包含了“主动”范围,但令我惊讶的是它成功了,没有任何问题。

我想在真正的Customer类上调用'active'作用域并返回stub_chain类连接的东西,因此它似乎可以工作。

当我链接ActiveRecord范围时,如何编写规范以避免此类问题?

请注意,控制器中的实际调用并不总是使用两个作用域 - 它依赖于过滤,因此只需将所有内容包装在新方法中,这不是我热衷的方式。

0 个答案:

没有答案