我正在为具有嵌套属性的表单编写视图规范。我计划此表单包含相关模型的字段。我用mock_model模拟了一个主模型。现在,我需要存根关联才能为它构建字段。我该如何实现呢?我想象下面的代码:
describe 'hotels/new.html.erb' do
before(:each) do
assign(:hotel, mock_model('Hotel').as_new_record.as_null_object)
# I feel something missing here
end
it 'has room price field'
# Association - Room will belong to hotel
render
expect(rendered).to have_field 'hotel_room_attributes_0_price'
end
end
在hotels / new.html.erb中,我有一个包含字段的表单:
<%= form_for @hotel do |f| %>
<%= f.fields_for :room do |r| %>
<%= r.text_field :price %>
<% end %>
<% end %>
如何将此关联存根以便能够呈现其字段?
答案 0 :(得分:0)
如下所示创建存根:
hotel.stub(:rooms).and_return(whatever_you_want_returned)
您可以返回虚假或实际模型,但是and_return部分是可选的。如果您想为酒店的所有实例存储此方法,请执行以下操作:
Hotel.any_instance.stub(:rooms)