我的测试里有这个
Project.should_receive(:find).with(@project).and_return(@project)
但是当对象两次收到那个方法调用时,我必须
Project.should_receive(:find).with(@project).and_return(@project)
Project.should_receive(:find).with(@project).and_return(@project)
有没有什么方法可以说
Project.should_receive(:find).with(@project).and_return(@project).times(2)
4条答案
按热度按时间ktecyv1j1#
已过时。请检查下面的Uri's answer
两次:
恰好n次:
至少n次:
更多详细信息,请访问https://www.relishapp.com/rspec/rspec-mocks/v/2-13/docs/message-expectations/receive-counts的接收计数
cgyqldqp2#
rspec新的
expect
语法如下所示:两次:
恰好n次:
至少n次:
fcg9iug33#
@JaredBeck指出,这个解决方案在
any_instance
通话中对我不起作用。对于任何示例,我最终都使用stub而不是should_receive。
这将工作的任何次数虽然。
oxiaedzo4#
与
any_instance
相反,should_receive
期望类接收指定次数的消息。另一方面,
any_instance
通常用于清除方法。所以第一种情况是我们想要测试的一个期望,而第二种情况是越过一个方法到下一行,这样我们就可以继续了。