Stub(..)收到带有(无参数)的意外消息(..)



我尝试用RR写一个测试。我需要的是一个模型对象的存根。

describe ApplicationController do
  subject(:application_controller)     { ApplicationController.new }
  let(:messages)                       { ['a1', 'a2', 'a3' ] }
  let(:model)                          { Object.new }
  it 'should copy errors to flash' do
    stub(model).error_messages { messages }
    flash[:error] == nil
    subject.copy_errors_to_flash(model)
    flash[:error].should == messages
  end
end

得到的是

ApplicationController should copy errors to flash
     Failure/Error: stub(model).error_messages { messages }
       Stub #<Object:0x007ffaa803f930> received unexpected message :error_messages with (no args)
     # ./spec/controllers/application_controller_spec.rb:10:in `block (2 levels) in <top (required)>'

我不知道我做错了什么。

在模型的存根上调用方法'error_messages:

stub(model).error_messages { messages }

我假定你实际上想在这里做其他事情,很可能:

model.should_receive(:error_messages).and_return(messages)

为error_messages创建一个stub方法,并在spec测试调用model.error_messages

时使用messages数组进行响应。

相关内容

  • 没有找到相关文章

最新更新