私はrspec-spiesを使用していますが、すべての呼び出しが行われた後にスパイを検査する方法があるかどうか疑問に思っています。
たとえば、次のようなことをすると
# setup
Post.stub(:find).with(@post.id).and_return(@post)
do_something_to_call_post_find()
# verify find was called
Post.should have_received(:find).with(@post.id)
これはうまく機能しますが、Postが予期した引数を受け取らなかった場合、役に立たないエラー メッセージが表示されます (基本的に、「Post は find を 123 で受け取るべきでした」)。代わりに、実際の呼び出しが何であったかを確認したいと思い`find
ます。
の直後に一時停止できdo_something_to_call_post_find()
ますが、スタブ/スパイへのすべての呼び出し/引数を一覧表示する方法はありますか?
実際の使用例
これは今日私を捕まえました-私は期待していましたPost.should have_received(:find).with(@post.id)
、ここで@post.id is an integer
、私のコントローラーテストはパラメーター(IDを含む)を文字列として渡します。実際の呼び出しを調べることができれば、123
と"123"
と の違いは明らかだったでしょう。