User.should_receive(:update_attributes).with({'these' => 'params'})
该陈述是什么意思? these
在任何地方都没有实例化。
整个陈述是:
describe "with valid params" do
it "updates the requested user" do
User.should_receive(:find).with("37") { mock_user }
User.should_receive(:update_attributes).with({'these' => 'params'})
put :update, :id => "37", :user => {'these' => 'params'}
end
我说这是因为我收到了错误:
unknown attribute: these
来自上述情况......
答案 0 :(得分:3)
在任何正在运行的测试期间,应该在update_attributes
模型上调用方法User
,参数为{'these' => 'params'}
。
基本上,预计会在执行期间发生以下情况:
User.update_attributes({'these' => 'params'})
更多信息:http://rspec.info/documentation/mocks/message_expectations.html
答案 1 :(得分:0)
您不必替换哈希({'these'=>'params'})。把它想象成一份合同。我说过,当我PUT时,我的对象update_attributes模型应该接收以下哈希。在下一行中,您调用update方法并检查合同。