我试图在模拟的ActiveRecord模型上设定期望值。我创建了以下示例,该示例应基于我可以找到的文档进行传递。
it "should pass given the correct expectations" do
payment = mock_model(Payment)
payment.should_receive(:membership_id).with(12)
payment.membership_id = 12
end
失败并显示错误“...模拟'Payment_1004'收到意外消息:membership_id = with(12)”
我意识到我正在测试模拟框架,我只是想了解如何设置期望。
答案 0 :(得分:10)
您在错误的方法名称上设置了期望 - :membership_id
是“getter”,:membership_id=
是“setter”。正确的行是:
payment.should_receive(:membership_id=).with(12)
答案 1 :(得分:1)
这里另一个有用的“out” - 如果一个人不关心id键 - 是做类似以下的事情:
mock_model(Payment,:[]= => nil, :save=> nil)
......或者只是
mock_model(Payment,:[]= => nil)
里尔