2009-07-14 19 views
3

私は虚偽のActiveRecordモデルで期待値を設定しようとしています。次の例を作成しました。この例は、私が見つけることができるドキュメントに基づいています。Rails:RSpecのモックモデルの期待値を設定する

it "should pass given the correct expectations" do 
    payment = mock_model(Payment) 
    payment.should_receive(:membership_id).with(12) 
    payment.membership_id = 12 
end 
それはエラーで失敗している

:私はモックフレームワークをテストしてい実現

「モック 『Payment_1004は』予期しないメッセージを受信し...(12)とmembership_id =」、私はちょうどしようとしていますへ期待を設定する方法を理解する。

答えて

10

あなたは間違ったメソッド名に期待値を設定しています - :membership_idは "ゲッター"、:membership_id=は "セッター"です。正しい行は次のようになります。

payment.should_receive(:membership_id=).with(12) 
+0

パーフェクト、ありがとう! – Lee

+0

Mongoid :: Documentで 'mock_model'を使用して、これにこだわりました。私は 'model.should_receive(:write_attribute)'と 'model.should_receive(:save)'を追加するだけでした。 – bowsersenior

1

ここでは「アウト」の別の有用な - - 1は、IDキーを気にしない場合は、次のような何かを行うことです。

mock_model(Payment,:[]= => nil, :save=> nil) 

を.. .OR多分ちょうど

mock_model(Payment,:[]= => nil) 

リール

関連する問題