2013-03-13 27 views
0

我有以下代碼:如何存根:Rspec中的哪個方法?

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) 

回答

7

在你的情況,你應該返回出頭,響應first。陣列是一個不錯的選擇。

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

您可以使用stub_chain存根都wherefirst,然後返回你的對象:

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