【发布时间】:2012-10-01 13:19:41
【问题描述】:
我觉得这应该是一个简单的问题,但我一直在努力寻找答案。我已经在我的 Rails 项目中设置了身份验证设计,并且效果很好。我还自定义了密码验证和登录要求。具体来说,应该能够使用他们的用户名或电子邮件登录,并且电子邮件不应该区分大小写。
如何在我的模型规格中对此进行测试?具体测试:
- 使用邮箱登录(均低于)且密码有效
- 使用邮箱登录(全部为大写),密码有效
- 用户名密码登录有效
- 使用用户名登录(大小写错误)和密码无效
基本上,我只需要一个函数来接收登录详细信息并告诉我设计是否会对其进行身份验证。但是我在任何示例中都找不到这样的函数,或者在设计文档中以任何方式构造这样的函数。
我相信它确实在工作,并且可以在我的请求规范中对其进行测试,但由于它是在模型中定义的,因此感觉它们也应该是模型测试。
我经常发现的唯一设计测试是在控制器中,这无济于事,因为它只是自动登录用户而不需要登录详细信息。
【问题讨论】:
-
为什么要测试 Devise 本身应该已经测试过的东西?您是否有任何可能干扰的自定义代码?
-
这正是我想要测试它的原因。我喜欢使用其他 gem 而不是自己重写东西,但是它们中的功能可能会随着未来的变化而中断(甚至现在被破坏)。我不认为冗余测试是一件坏事。
标签: ruby-on-rails ruby-on-rails-3 authentication devise