2013-06-11 25 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有三个使用/测试设计认证/授权的章节,如果您需要详细信息,我会检查它。