我最近将Devise引擎添加到具有现有身份验证系统的项目中(来自Rails教程)。
在我添加Devise之前,我的UsersController处理了所有用户注册工具new,create,edit,destroy,并且我为它们编写了很多rspec测试。当然,现在注册由Devise处理,我必须从users_controller_spec.rb中删除这些测试。
我可以在哪里放置这些测试以确保设计注册过程正常工作?
修改
好的,我相信自从我发布问题以来,我已经取得了一些进展。
首先,我通过在/app/controllers/registrations_controller.rb中创建自己的RegistrationsController来覆盖Devise注册控制器。
class RegistrationsController < Devise::RegistrationsController
end
然后我告诉Devise在我的/config/routes.rb文件中使用此控制器进行注册:
devise_for :users, :controllers => { :registrations => "registrations" }
现在我需要做的就是在/spec/controllers/registrations_controller_spec.rb中进行测试。
我是在正确的轨道上吗?
答案 0 :(得分:2)
如果您计划覆盖某些控制器方法,那将是一个很好的解决方案。通常,您不会测试其他已经拥有自己的测试套件的框架。你只是复制测试。也就是说,如果你更自在,那就去吧。