2012-03-07 2 views
2

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я все еще новичок Rails/Cucumber, но я стараюсь учиться. Я все еще использую «web_steps» для Cucumber, когда я работаю через книгу RailsInAction, и я экспериментировал с написанием собственных шагов. Я понимаю, почему их вывезли, и я доберусь туда.Данные, вставленные в тесты огурца, не заселяющие Распространение

  • Проблема:

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

Когда DropDown предположительно заполняется, и я пытаюсь «выбрать» из этого DropDown, я получаю сообщение об ошибке »* не может выбрать параметр, без опции с текстом« Steven »в поле выбора« result_winner »(Capybara :: ElementNotFound) * «

Уверен, что у меня что-то не хватает, но я потерял около часа, и мне просто нужна помощь.

  • Мой код:

Тесты:

When I follow "Record new Result" 
And the users "Steven, Joshua" exist 
And I select "Steven" from "result_winner" 

Тестовые шаги:

When /^the users "([^"]*)" exist$/ do |playerNames| 
    @names = playerNames.scan(/[\w']+/) 

    for name in @names 
    @newPlayer = Player.new 
    @newPlayer.name = name 
    @newPlayer.save 
    end 
end 

Тогда вид кода в _form.html.erb:

<p> 
    <%= f.label :winner %> 
    <%= select("result", "winner", @players.map {|p| [p.name, p.id]}) %> 
</p> 

Контроллер:

def new 
    @result = Result.new 
    @players = Player.find(:all) 
    end 

Если я вручную заполнить базу данных разработки с именами и загрузить его в браузере выпадающие есть данные, заселенных в них и работают отлично. Я уверен, что я не понимаю, когда/где данные теста видны, или как тестировать и выбирать данные из выпадающего списка.

Любая помощь была бы принята с благодарностью.

ответ

3

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

Чтобы было ясно, огурец буквально пошагово ваш сценарий на одну строку за один раз:

  1. Загрузите веб-страницу (которая не содержит тестовые данные)
  2. Введите свои данные в БД
  3. Посмотрите на эти данные в раскрывающемся списке (который не будет там как страница была загружена до данных был в БД)
+0

Спасибо! Я знал, что у меня что-то не хватает! – StevenMcD