全て、
次のようなテストでいくつかの問題があります。
it "does something" do
controller.should_receive(:some_method).once
expect {
post :create, some_params_hash, some_session_hash
}.to change(Something, :count).by(1)
end
レール側のコントローラー - 大まかな例:
class SomethingsController
before_filter :some_method
def create
respond_with Something.create params[:something]
end
def some_method
puts 'some_method'
end
end
controller.should_receive の期待を削除すると、これはすべてうまくいき、うまく機能します。期待をそのままにしておくと、テストは失敗します。
奇妙なのは、満たされていない期待で失敗していないことです。実際には should_receive(:some_method) の期待を満たしているようです。レコードの作成とそれに続く変更の評価が失敗しているだけです。
だから - 質問:
これは、このテストの一部として呼び出されるコントローラーで期待を指定する適切な方法ですか??
助けてくれてありがとう!