2

我有以下代码:

Group.where('name ~* ?', params[:name]).first

在这种情况下如何存根where方法?

Group.stub(:where).and_return(mock_model(Group, name: "SomeName"))

导致错误:

Mock "Group_1001" received unexpected message :first with (no args)
4

2 回答 2

8

在您的情况下,您应该返回响应first. 数组是一个不错的选择。

Group.stub(:where).and_return([mock_model(Group, name: "SomeName")])
于 2013-03-13T11:05:25.423 回答
8

您可以使用stub_chain两个存根wherefirst然后返回您的对象:

Group.stub_chain(:where, :first).and_return(mock_model(Group, name: "SomeName"))
于 2013-03-13T11:16:27.877 回答