我想在rspec测试中使用Mocks,如。
klass.any_instance.should_receive(:save).exactly(2).times.and_return(true)
但是我收到如下错误消息:
'< #Object>收到消息“保存”但已收到< #Object>'
临时我使用存根,但准确性要使用模拟
答案 0 :(得分:20)
any_instance.should_receive
的{{3}}是:
Use any_instance.should_receive to set an expectation that one (and only one)
instance of a class receives a message before the example is completed.
所以你已经指定了一个对象应该两次接收save
调用,而不是那两个对象应该一次接收save
调用。
如果你想计算不同实例所做的调用,你必须documentation像:
save_count = 0
klass.any_instance.stub(:save) { save_count+=1 }
# run test
save_count.should == 2