Тест Rspec на ассоциации простых форм

Я пытаюсь запустить спецификацию запроса в форме (построенной с помощью простой формы). Форма включает в себя несколько полей выбора, созданных с использованием метода ассоциации, и, следовательно, значения базы данных для модели.

При запуске save_and_open_page это не похоже на выбор значений в раскрывающихся списках.

Я просмотрел Mocking и Stubbbing, но это новое для меня, и я все еще немного смущен концепцией, выходящей за рамки основного использования.

Есть ли способ создать коллекцию для поля выбора, чтобы Capybara могла ее подобрать?

Я использую Rails 3.1, Simple Form, Capybara и FactoryGirl.

Мой код...

Challenge_spec

describe "New Challenges" do

  before(:all) do
    %w["Under 13", "13 - 16"].each do |item|
      FactoryGirl.create(:age, :name => item)
     end
  end

  it "should redirect to resources after submission" do

    login_valid_user

    visit new_challenge_path

    @challenge = Factory.build(:challenge)

    fill_in "challenge_name", :with => @challenge.name
    fill_in "challenge_description", :with => @challenge.description
    fill_in "challenge_description", :with => @challenge.description
    select "30 mins", :from => "challenge_timescale"
    save_and_open_page
    select 1, :from => "challenge_age_id"
    select @challenge.category, :from => "challenge_category_id"

    click_button "save_button"

  end
end

Контроллер

def new
  @challenge = Challenge.new

  respond_to do |format|
    format.html # new.html.haml
    format.json { render json: @challenge }
  end
end

Элемент формы

<%= f.association :age, :prompt => "Please select..." %>

Модели

Испытание

class Challenge < ActiveRecord::Base
  belongs_to :age
end

Возраст

class Age < ActiveRecord::Base
  has_many :challenges
end

person Edward Ford    schedule 23.11.2011    source источник
comment
Каковы имена меток выбранных вами полей? Вы пытались использовать их вместо реальных имен полей. Например select "30 mins", :from => "Challenge Timescale".   -  person nmott    schedule 30.11.2011
comment
@nmott У меня такая же проблема. Я специально проверяю метку на каждом из вариантов. Когда я запускаю страницу в браузере, все отображается правильно. Когда я запускаю капибару, она не отображается в page.html   -  person Drew    schedule 29.12.2011
comment
@Drew нужно будет увидеть больше деталей, чтобы помочь. Можете ли вы создать новый вопрос и отправить ссылку сюда, и я посмотрю.   -  person nmott    schedule 04.01.2012


Ответы (1)


Я настоятельно рекомендую создавать фикстуры для ваших тестов.

Таким образом, вы можете вручную создавать записи, необходимые для тестов, и управлять ими. Это не так эффективно и элегантно, как использование макетов, заглушек и двойников, но улучшает понимание приложения и тестов.

person Tass    schedule 08.01.2013