如何使用水豚以简单形式测试集合输入

How do I test collection input in simple form using capybara

我正在尝试测试包含集合的输入是否会被填充,我正在为我的表单使用简单的表单,水豚使用 Rspec 作为 test.this 的输入正在尝试填充 <%= f.input :number_of_beds, collection: House::NUMBEROFBEDS, label: false %>.

房屋模型有 NUMBEROFBEDS 个数组,如下所示:

class House < ApplicationRecord
  NUMBEROFBEDS = [1,2,3,4,5,6]
end

在我的spec/system/create_house_spec.rb。我尝试测试我可以像这样填写 number_of_beds 输入:

require "rails_helper"
RSpec.describe "Create House" do
  scenario 'successful house creation' do 
    visit new_house_path
    fill_in 'house_number_of_beds', with: '1'
  end
end

但是我得到以下错误

  1) Create House successful bed creation
     Failure/Error: fill_in 'house_number_of_beds', with: '1'

     Capybara::ElementNotFound:
       Unable to find field "house_number_of_beds" that is not disabled

简单形式的集合选项,作为 select tag 工作,因此用 fill_in 测试它失败了最好的方法是使用 select 即 select '1', from: 'house_number_of_beds'