我有以下代码:
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)
答案 0 :(得分:7)
在您的情况下,您应该返回响应first
的某些内容。数组是一个不错的选择。
Group.stub(:where).and_return([mock_model(Group, name: "SomeName")])
答案 1 :(得分:6)
您可以使用stub_chain
存根where
和first
,然后返回您的对象:
Group.stub_chain(:where, :first).and_return(mock_model(Group, name: "SomeName"))