Как обработать «подтверждение» пользователя с помощью Watir / Cucumber? - PullRequest
2 голосов
/ 23 марта 2010

Я новичок в Watir, и у меня возникли небольшие проблемы при входе в мои тесты. Я использую authlogic в качестве метода выбора аутентификации. Когда пользователь регистрируется, ему отправляется электронное письмо со ссылкой для подтверждения. Нажав на эту ссылку, вы подтвердите свой аккаунт, после чего сможете войти в систему.

У меня проблема в том, как подтвердить пользователя при использовании Watir?

Пока у меня есть:

Given /I sign up/ do
  BROWSER.goto("http://localhost:3000/register")
  BROWSER.text_field(:id, "user_email").set("foo@bar.com")
  BROWSER.text_field(:id, "user_name").set("Foo Bar)
  BROWSER.text_field(:id, "user_password").set("foo bar")
  BROWSER.text_field(:id, "user_password_confirmation").set("foo bar")
  BROWSER.button(:id, "user_submit").click
end

Given /I am logged in via Watir/ do
  BROWSER.goto("http://localhost:3000/login")
  BROWSER.text_field(:id, "user_session_email").set("foo@bar.com)
  BROWSER.text_field(:id, "user_session_password").set("foo bar")
  BROWSER.button(:id, "user_session_submit").click
end

Это правильно заполняет поля, и пользователь сохраняется. Теперь я пытаюсь подтвердить пользователя следующим образом:

Given /I am confirmed/ do
  User.last.confirmed!
end

К сожалению, это не работает. Чего мне не хватает?

1 Ответ

1 голос
/ 16 апреля 2010

Я не знаком с вайтиром, но я представляю следующие шаги:

Given I have signed up
When I confirm my account
Then my account should be confirmed

Вы можете либо отслеживать ссылку, по которой вы ожидаете их попадания, и фактически проверять попадание по этой ссылке, чтобы убедиться, что контроллер затем устанавливает пользователя как подтвержденное:

When /I confirm my account / do
  BROWSER.goto("the_url_from_the_email")
  # note that if you need to visit this link and click a button
  # or something you will need to code that part as well
end

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

Не уверен, что это действительно отвечает на ваш первоначальный вопрос, но, как уже упоминалось, вы на самом деле не сказали, что на самом деле идет не так. Я бы предположил, что User.last.confirmed! не сохраняет или не сохраняет ожидаемую запись.

...