Rails:RSpec中模拟模型的问题设置期望

时间:2009-07-14 18:03:20

标签: ruby-on-rails rspec

我试图在模拟的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)”

我意识到我正在测试模拟框架,我只是想了解如何设置期望。

2 个答案:

答案 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)

里尔

相关问题