2011-03-11 14 views
4

爲設計出wiki頁面建議使用下面的測試,如果用戶沒有登錄:還有什麼其他的方式來測試Devise'沒有登錄'與黃瓜?

Given /^I am not authenticated$/ do 
    visit('/users/sign_out') # ensure that at least 
    end 

其中一期工程,但感覺錯了,因爲它只是測試某一個路線的Visitable並沒有真正測試的是用戶未登錄。

是否有其他更好的方法可用於測試用戶是否使用Devise登錄?

回答

1

給定語句在執行測試場景之前設置已知狀態,請參閱GWT。在這種情況下,它在運行場景之前簽出用戶。

您可以使用下面的場景,以確認資源是真正通過認證保護:

Scenario: Anonymous denied access 
    Given I am not authenticated 
    When I go to protected_resource 
    Then I should see "You need to sign in or sign up before continuing" 

的protected_resource需要的功能/支持/ paths.rb被定義

+0

是,「鑑於」聲明不是測試。 「給定」步驟設定了情況,「當」步驟改變了已知狀態,而「然後」步驟測試了你的「時間」改變做了你期望他們做的事情。 – carols10cents 2011-04-07 15:19:25