我想在 rspec 测试中使用 Mocks。
klass.any_instance.should_receive(:save).exactly(2).times.and_return(true)
但我收到一条错误消息,例如:
'<#Object> 已收到消息“保存”,但 <#Object> 已收到消息“保存”
临时我使用存根,但为了准确性想使用模拟
我想在 rspec 测试中使用 Mocks。
klass.any_instance.should_receive(:save).exactly(2).times.and_return(true)
但我收到一条错误消息,例如:
'<#Object> 已收到消息“保存”,但 <#Object> 已收到消息“保存”
临时我使用存根,但为了准确性想使用模拟
的文档是any_instance.should_receive
:
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
两次调用,而不是 2 个对象应接收save
一次调用。
如果您想计算不同实例完成的调用,则必须具有创造性,例如:
save_count = 0
klass.any_instance.stub(:save) { save_count+=1 }
# run test
save_count.should == 2