我正在嘗試開始進行控制器測驗,但我不確定我做錯了什么。這是我的代碼,以及它產生的錯誤:
require 'test_helper'
class InvProcure::UserImportsControllerTest < ActionDispatch::IntegrationTest
include Devise::Test::ControllerHelpers
test "should get index" do
user = users(:foobars_admin)
sign_in(:user, user)
get inv_procure_user_imports_path
assert_response :success
end
end
NoMethodError: undefined method `env' for nil:NilClass
/home/blaine/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/devise-4.7.1/lib/devise/test/controller_helpers.rb:42:in `setup_controller_for_warden'
包含設計測驗幫助程式或呼叫sign_in.
uj5u.com熱心網友回復:
來自檔案:https ://www.rubydoc.info/gems/devise/Devise/Test/ControllerHelpers
Devise::Test::ControllerHelpers提供了一種工具來在使用時單獨測驗控制器,ActionController::TestCase允許您快速登錄或注銷用戶。不要Devise::Test::ControllerHelpers在集成測驗中使用。
您正在繼承集成測驗類,而不是控制器測驗類,這是現在控制器測驗的默認值(從 Rails 5 開始,控制器測驗是使用父類生成的,ActionDispatch::IntegrationTest而不是ActionController::TestCase)。Devise::Test::ControllerHelpers是ActionController::TestCase為集成測驗而不是為集成測驗而構建的。
您可以改為嘗試使用Devise::Test::IntegrationHelpers應該具有類似方法的集成測驗。
檔案:https ://www.rubydoc.info/gems/devise/Devise/Test/IntegrationHelpers
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/477403.html
標籤:轨道上的红宝石
