minitestにおいて、sorceryが提供するメソッドである「login_user」を利用するとエラーが発生します。
現状
ruby
1require 'test_helper' 2 3class UsersControllerTest < ActionDispatch::IntegrationTest 4 5 include Sorcery::TestHelpers::Rails::Integration 6 include Sorcery::TestHelpers::Rails::Controller 7 8 def setup 9 @user = users(:tanaka) 10 @other_user = users(:yamada) 11 login_user #ここでエラー 12 end 13end
エラー内容
NoMethodError: NoMethodError: undefined method `auto_login' for nil:NilClass
エラーからみて、メソッドの呼び出し自体はできているように感じます。
Ver
ruby '2.6.3'
rails '5.2.3'
現状の解決策
Sorcery::TestHelperが使用できないので自前でlogin_userメソッドを実装しました。
remember_meを実装している場合はこんな感じになりました。
test_helper.rb
ruby
1...省略 2class ActiveSupport::TestCase 3 def login_user(user, password="password", remember_me=false) 4 user ||= users(:first) 5 post login_path, params: { session: { email: user.email, 6 password: password, 7 remember_me: remember_me }} 8 follow_redirect! # 画面遷移 9 end 10end
あなたの回答
tips
プレビュー