我正在使用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 应该收到 123 的 find”)。相反,我想看看实际调用的`find
是什么。
我可以在之后暂停do_something_to_call_post_find()
,但是有没有办法列出存根/间谍的所有调用/参数?
实际用例
这个今天抓住了我——我期待Post.should have_received(:find).with(@post.id)
,在哪里@post.id is an integer
,我的控制器测试将参数(包括 id)作为字符串传递。123
如果我可以检查实际的调用,我会看到and和之间的区别"123"
,这将是显而易见的。