2011-09-13 4 views
2

コントローラー:RSpecのは、この些細なコードは失敗しませんが、それはず

class FooController < ApplicationController 
    def create 
    end 
end 

コントローラの仕様:私はこれを実行すると

describe FooController 
    it "does bar" do 
    Foo.should_receive(:new).with("text" => "Lorem ipsum") 
    post :create, foo: { "text" => "Lorem ipsum" } 
    end 
end 

、RSpecのは、それは成功だと言います。ただしメソッドではFoo.newは呼び出されません。しかし、post関数呼び出しのLorem ipsumを何か他のものに変更すると失敗します。私はこれが失敗すると予想し、createメソッドの本体にFoo.new(params[:foo])を追加した場合に成功します。なぜこれは当てはまりませんか?

+0

'puts" HI! "'のようなことをし、 'super'を呼び出して、実際に呼び出されていることを確認するためにテストログを見てください。 ? – dantswain

+1

私のためにうまくいかない...あなたは正しいコントローラコードを見ていると確信していますか? –

答えて

2

記述ブロックに「do」がないようです。試してみてください:

関連する問題