Rspec + Devise::TestHelpers 类型的解释
Explanation on Rspec + Devise::TestHelpers type
我正在使用 rspec-rails to test my application and devise 作为身份验证解决方案。
像我们很多人一样,我遇到了常见错误:undefined method authenticate' for nil:NilClass
which I resolved partially by adding this line as suggested in the README :
config.include Devise::TestHelpers, type: :controller
对于控制器的测试,错误消失了,但对于我的视图的测试,它仍然存在。我终于通过添加完全解决了它:
config.include Devise::TestHelpers, type: :view
但我不确定这样做是否正确,因为我以前从未在任何地方见过它。
另外,我们可以为每个类型都包含它吗,比如 config.include Devise::TestHelpers, type: :all
?
感谢您的澄清
您可以通过不指定 type
.
在所有示例中包含一个模块
config.include Devise::TestHelpers
如果您的视图正在使用 Devise 的助手,例如 current_user
或 user_signed_in?
,那么在它们的规范中包含 TestHelpers
是合理的。尽管在架构上,您可能需要考虑在控制器中分配 @user = current_user
之类的东西,这样您就可以将视图与身份验证分离。
我正在使用 rspec-rails to test my application and devise 作为身份验证解决方案。
像我们很多人一样,我遇到了常见错误:undefined method authenticate' for nil:NilClass
which I resolved partially by adding this line as suggested in the README :
config.include Devise::TestHelpers, type: :controller
对于控制器的测试,错误消失了,但对于我的视图的测试,它仍然存在。我终于通过添加完全解决了它:
config.include Devise::TestHelpers, type: :view
但我不确定这样做是否正确,因为我以前从未在任何地方见过它。
另外,我们可以为每个类型都包含它吗,比如 config.include Devise::TestHelpers, type: :all
?
感谢您的澄清
您可以通过不指定 type
.
config.include Devise::TestHelpers
如果您的视图正在使用 Devise 的助手,例如 current_user
或 user_signed_in?
,那么在它们的规范中包含 TestHelpers
是合理的。尽管在架构上,您可能需要考虑在控制器中分配 @user = current_user
之类的东西,这样您就可以将视图与身份验证分离。