Rails 5控制器测试更改 - "Devise :: TestHelpers"已弃用,将从Devise中删除.

emi*_*co7 9 testing ruby-on-rails devise

自从我安装Rails 5后,我正在开发我的第一个应用程序.当我运行我的控制器操作规范时,即使我的所有测试都通过,我也会收到下面的警告信息.

[Devise] including `Devise::TestHelpers` is deprecated and will be removed from Devise.    
For controller tests, please include `Devise::Test::ControllerHelpers` instead.
Run Code Online (Sandbox Code Playgroud)

所以在spec/rails_helper.rb我改变这一行:

config.include Devise::TestHelpers, type: :controller
Run Code Online (Sandbox Code Playgroud)

config.include Devise::Test::ControllerHelpers
Run Code Online (Sandbox Code Playgroud)

这一变化使警告消失了,但现在模型的规格都失败了.(他们在改变之前就过世了.)我该如何解决这个问题?谢谢!

blo*_*age 16

您应该将spec/rails_helper.rb文件更改为以下内容:

config.include Devise::Test::ControllerHelpers, type: :controller
Run Code Online (Sandbox Code Playgroud)

这将确保Devise::Test::ControllerHelpers模块仅包含在控制器测试中.模型测试失败的原因是因为该模块特定于控制器测试.