私は次のコードを持っています:
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)
私は次のコードを持っています:
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)
あなたの場合、に応答するものを返す必要がありますfirst
。配列は良い選択です。
Group.stub(:where).and_return([mock_model(Group, name: "SomeName")])
を使用して、との両方をstub_chain
スタブしてから、オブジェクトを返すことができます。where
first
Group.stub_chain(:where, :first).and_return(mock_model(Group, name: "SomeName"))