如何使用Watir / Cucumber处理用户“确认”?

时间:2010-03-23 02:12:23

标签: cucumber authlogic watir

我是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 个答案:

答案 0 :(得分:1)

我对waitir并不熟悉,但我想到了以下步骤:

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!没有保存,或者没有保存您期望的记录。