2013-05-16 1 views
1

Я использую rspec и capybara для проведения некоторых тестов для некоторых форм-путей, которые у нас есть, но они разработаны на PHP, поэтому просто ищут HTML. Поэтому, чтобы перейти к следующему вопросу о процессе, я должен ответить на предыдущую форму вопроса и щелкнуть мышью, чтобы перейти к следующей части. Я делаю это для каждого. Вот пример того, что я имею в виду:Эффективное использование Rspec/Capybara для заполнения каждой фазы формы

describe 'Fourth Step' do 
    before do 
    visit '/thiseffingwebsite' 
    select 'someAnswer', from: 'someQuestion' 
    click_button "Continue" 
    select 'someAnswer2', from: 'someQuestion2' 
    click_button "Continue" 
    select 'someAnswer3', from: 'someQuestion3' 
    click_button "Continue" 
    end 

    it "should have certain content" do 
    some stuff 
    end 

    it "should have stuff on next page after clicking Continue" do 
    fill out form 
    click_button 'Continue' 
    stuff on next page should be present 
    end 
end 

И это продолжается 12 шагов. Я должен поставить этот блок описания вместе со следующим шагом для каждого теста. Какие-либо предложения? Я заглянул в «пусть», но не смог найти способ применить его. Благодарю.

+0

Испытываете ли вы, что форма имеет правильные кнопки, или вы просто используете форму для публикации некоторых данных? – zetetic

+0

Я проверяю, что после «правильной заполненной информации», а затем «click_button», что X появляется на следующей странице. – JohnSchaum

ответ

2

Если вы только пытаетесь проверить, что сервер отправляет правильный ответ на определенный набор значений формы, вы можете следовать примеру в this blog post и просто публиковать заполненную форму, а затем проверить, что на возвращенной странице есть правильный текст.

Правда, это противоречит духу тестирования Капибары, но в вашем случае вам все равно, как эта форма работает на странице, только то, что возвращается правильный ответ.

+0

Спасибо за информацию. Не совсем то, что я искал (я понял, что я ничего не делаю), но в будущем он может решить проблему. – JohnSchaum