2013-06-11 26 views
1

我正在使用Devise gem進行身份驗證。我想知道如何在我的Rails測試(使用Test :: Unit)中測試功能,以及在應用gem後人們通常會寫什麼測試?使用Devise gem時的測試?

設計應用於我的用戶模型。

+0

你想測試什麼? –

+0

例如,當用戶登錄時,他們真正登錄並且用戶在會話中可用。相反,當退出......或者我應該只是依靠在這裏工作的寶石? –

+0

據推測,寶石已經過測試。無論如何,其餘的測試都不會依賴於登錄嗎? –

回答

0

根據您擁有的認證類型,您可能希望採取不同的方法。 我在去年我的應用程序正在使用設計與omniauth Facebook的,所以我也做了一些高層次的測試與水豚,看是否應用程序是妥善處理所有的情況下(例如,用戶沒有授予擴展權限)

在如果您有一些簡單的基於登錄/密碼的身份驗證,則應該足以測試所有受限資源(控制器)是否正在呼叫authenticate_user!。在這種情況下,測試Devise本身也沒有意義,所以您可以檢查視圖是否調用合適的助手來呈現登錄/註銷鏈接。

1

如果您試圖測試設計或真正的任何類型的用戶交互,您應該嘗試使用rspec和水豚(或類似的東西)進行集成測試。您甚至可以使用email_spec gem測試確認電子郵件。本書:http://www.manning.com/bigg2/ Rails 4 in Action有三個使用/測試設計認證/授權的章節,如果您需要詳細信息,我會檢查它。