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

Lee*_*Lee 3 rspec ruby-on-rails

我试图在模拟的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
Run Code Online (Sandbox Code Playgroud)

它失败了,错误"......模拟'Payment_1004'收到了意外消息:membership_id = with(12)"

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

Gre*_*ell 10

你在错误的方法名称上设置了期望 - :membership_id是"getter",:membership_id=是"setter".正确的行是:

payment.should_receive(:membership_id=).with(12)
Run Code Online (Sandbox Code Playgroud)