Хорошо, вы все еще используете старую версию драгоценного камня cucumber-rails
, которая поставляется с обучающими колесами, установленными по умолчанию. Прочтите это сообщение Аслака Хеллесёя "Тренировочные колеса оторвались" .
Суть поста в том, что использование web_steps.rb
, хотя это было "стандартом" для лет , теперь ужасно неправильно, и что мы должны чувствовать себя плохо из-за этого.
Цель Cucumber - использовать его для создания понятных / понятных функций для всех людей.
Написание такого сценария долго и скучно:
And I am on the login page
When I fill in "email" with "email@example.com"
And I fill in "password" with "123"
And I press "Login"
Then I should see "Account Activity"
Что вы хотите на самом деле тестировать, так это то, что вы должны иметь возможность войти в систему и после этого увидеть, что нужно сделать, чтобы войти в систему. Что бы это ни было, не должно быть записано в сценарии .
Так что в идеале ваша Scenario
(более захватывающая мода) будет выглядеть так:
When I login successfully
Then I should see that I am logged in
Тогда задача выполнения работы ног переходит к некоторым новым определениям шагов. Эти два шага не определены автоматически для вас, как web_steps.rb
, а скорее должны записать их в файл в feature/step_definitions
. То, что вы называете файлом, зависит от вас, но оно будет содержать содержимое, подобное следующему:
When /I login successfully/ do
visit root_path
click_link "Login"
fill_in "Email", :with => "you@example.com"
fill_in "Password", :with => "password"
end
Then /^I should see I am logged in$/ do
page.should have_content("Account Activity")
end
Не более чрезмерных web_steps.rb
определений файлов и шагов очистки. Именно таким и должен быть огурец.