2010-03-23 29 views
2

我是Watir的新手,我在測試中遇到了一些麻煩。我使用authlogic作爲我選擇的身份驗證方法。當用戶註冊時,他們會收到帶有確認鏈接的電子郵件。點擊此鏈接確認他們的帳戶,然後他們可以登錄。如何使用Watir/Cucumber處理用戶「確認」?

我遇到的問題是如何在使用Watir時確認用戶?

我到目前爲止有:

Given /I sign up/ do 
    BROWSER.goto("http://localhost:3000/register") 
    BROWSER.text_field(:id, "user_email").set("[email protected]") 
    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("[email protected]) 
    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 

不幸的是,這是行不通的。我錯過了什麼?

+0

'User.last.confirmed!'做了什麼?我不明白問題是什麼。 – 2010-03-23 09:19:01

+0

'User.last.confirmed!'找到最後一個用戶並在他們的賬戶上切換:已確認標誌。何時:證實=真,那麼他們已經確認他們的電子郵件,他們可以登錄。 – 2010-03-23 12:05:17

+0

我還是不明白問題: - 請爲'User.last.confirmed!'提供Watir代碼。' - 請展開「不起作用」。你期望什麼?反而發生了什麼? – 2010-03-24 10:44:20

回答

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!沒有保存,或者沒有保存你期望的記錄。

+1

是的,這個問題是在我的代碼,而不是與Watir ... – 2010-04-17 13:16:39