我想调用一个只返回一条记录的named_scope,但是named_scope返回一个数组,这不是什么大问题,因为我可以用.first链接它.
Model.named_scope(param).first
这是有效的,我正在努力的是如何存根链接的电话.有没有人有关于如何用Rspec嘲笑实现这个目标的参考或答案?
我想出了什么.
Client.stub!(:named_scope).and_return(@clients = mock([Client])) @clients.stub!(:first).and_return(@client = mock(Client))
这让我可以打电话给我的控制器:
@client = Client.named_scope(param).first
它有效,但有更好的解决方案吗?
编辑:
rspec 1.2.6的发布允许我们使用stub_chain,这意味着它现在可以是:
Client.stub_chain(:named_scope, :chained_call).and_return(@clients = [mock(Client)])
这是我的头脑,因为总是检查api的具体信息:)