Я использую Ruby on Rails 3.2.2, cucumber-rails-1.3.0, rspec-rails-2.8.1, capybara-1.1.2 и factory_girl-2.6.3.У меня есть сценарий, который проверяет, что пользователь регистрируется следующим образом:
Scenario: I register an user
When I fill in "Name" with "Foo"
And I fill in "Email" with "foo_bar@email.com"
And I fill in "Password" with "test_password"
And I click button "Register"
Then I should be redirected to the homepage
, и я пытаюсь указать новую функцию (в отдельном файле), где реализовать сценарий, который, используя токен,должен проверить, правильно ли завершен процесс подтверждения подписанного пользователя ( примечание : на самом деле, этот процесс включает доставку сообщения электронной почты, но я не хочу проверить, было ли отправлено это письмо;просто проигнорируй это за этот вопрос).Поскольку я хотел бы протестировать исключительно процесс подтверждения, я подумал о реализации новой функции / сценария, в которой нужно указать что-то вроде Given I am a registered user
, для которого нужно запустить Scenario: I register an user
.
Scenario: I confirm an user
Given I am a registered user # Here I would like to run the 'Scenario: I register an user'
When I go to the confirmation page
And I enter the confirmation token
Then ...
В двух словах: Я подумал вызвать весь сценарий в другом сценарии .
Даже если я могу использовать гем FactoryGirl, чтобы «создать» - «зарегистрировать» пользователя, я предпочитаю перейти к описанному выше подходу.потому что я тестирую («практически» говоря, эти «представляют» «невидимых людей», которые, управляемые самоцветом Selenium, открывают мой браузер и выполняют действия), чтобы вести себя максимально точно так же, как ведут себя «настоящие люди», и поэтомутестовые шаги, чтобы неявно следовать всем «реальным» шагам, которые должны быть сделаны в действительности, чтобы зарегистрировать нового пользователя.Следуя этому подходу, я могу проверить, правильно ли работают "внутренности" приложения.
Это правильный подход?Если нет, как я могу / должен продолжить?