Тестирование входа с помощью устройства и огурца - PullRequest
6 голосов
/ 24 июня 2011

Я пытаюсь проверить работоспособность входа с помощью Cucumber.Мой файл users_steps.rb содержит

Given /^I am a user named "([^"]*)" with an email "([^"]*)" and password "([^"]*)"$/ do |name, email, password|
  u = User.new(:name => name,
               :email => email,
               :password => password,
               :password_confirmation => password)
  u.skip_confirmation!
  u.save!
end


When /^I sign in as "(.*)\/(.*)"$/ do |email, password|
  #Given %{I am not logged in}
  When %{I go to the sign in page}
  And %{I fill in "user_email" with "#{email}"}
  And %{I fill in "user_password" with "#{password}"}
  And %{I press "Log Me In"}
end

Then /^I should be signed in$/ do
  Then %{I should see "Sign out"}
end

Then /^I should be signed in$/ do
  Then %{I should see "Sign out"}
end

Then /^I sign out$/ do
  visit('/account/logout')
end

, и мой сценарий огурца:

  Scenario: User signs in successfully with email
    Given I am not logged in
    And I am a user named "foo" with an email "user@test.com" and password "please"
    When I go to the sign in page
    And I sign in as "user@test.com/please"
    Then I should be signed in
    When I return next time
    Then I should be already signed in

Однако в этом тесте не удается войти в систему. Я проверил, что пользователь создан правильно, нопосле заполнения формы я перенаправлен на страницу входа.

Я использую капибару.Чего мне не хватает?

1 Ответ

2 голосов
/ 25 июня 2011

Вы, вероятно, хотите использовать:

1.В файле user_steps.rb, расположенном в step_definitions:

Given /^a valid user$/ do
  @user = User.create!({
             :email => "minikermit@hotmail.com",
             :password => "12345678",
             :password_confirmation => "12345678"
           })
end

Given /^a logged in user$/ do
  Given "a valid user"
  visit signin_url
  fill_in "Email", :with => "minikermit@hotmail.com"
  fill_in "Password", :with => "12345678"
  click_button "Sign in"
end

В вашей функции для проверки подлинности:

Scenario: Login
  Given a valid user
  When I go to the login page
  And I fill in the following:
    |Email|minikermit@hotmail.com|
    |Password|12345678|
  And I press "Sign in"
  Then I should see "Signed in successfully."

Не забудьте изменить путь к вашей странице входа в службу поддержки /paths.rb

when /the login page/
  user_session_path

Здесь мой путь использует настройку устройства по умолчанию.Вы можете использовать rake routes, чтобы найти свой путь входа в систему.

Возможно, вам придется изменить текст в «Вход», «Успешный вход», чтобы соответствовать вашей странице.Здесь я предполагаю, что вы используете конфигурацию по умолчанию для cucumber + capybara + devise.

...