Я работаю над рельсами с rspec, rspec-rails, огурцом и webrat.
Я пытаюсь изучить BDD и тестирование в целом.
У меня есть сценарий огурца, как это:
Scenario: Questions List
Given quiz titled "Pearl Jam" has questions named "Corduroy, Dissident"
When I go to the experiment page for quiz titled "Pearl Jam"
Then I should see "Corduroy"
And I should see "Dissident"
У меня есть добавленный шаг 1, где я правильно создаю и сохраняю тест (я проверял через путы).
Сейчас я работаю над шагом 2. Я добавляю новый путь в paths.rb
when /^the experiment page for quiz titled "(.*)"$/i
new_quiz_experiment_path(Quiz.find_by_title($1))
Почему-то find_by_title
не работает. Я получаю это сообщение об ошибке:
new_quiz_experiment_url failed to generate from {:quiz_id=>nil, :action=>"new", :controller=>"experiments"}, expected: {:action=>"new", :controller=>"experiments"}, diff: {:quiz_id=>nil} (ActionController::RoutingError)
Я уверен, что запись есть и правильно сохранена; если я вставлю
puts Quiz.find(1).title
Я получаю "Pearl Jam". Похоже, find_by
не работает, что довольно странно, так как файл, сгенерированный огурцом, содержит следующий пример:
# when /^(.*)'s profile page$/i
# user_profile_path(User.find_by_login($1))
Я также сначала попытался найти более простой поиск с условиями, он тоже не работает.
Есть идеи?
Заранее спасибо,
Davide