railstestを実行した結果このようなエラー文が返ってきました。
UsersLoginTest#test_login_with_valid_information_followed_by_logout: NameError: undefined local variable or method ` ' for #<SessionsController:0x0000000006841e48> app/controllers/sessions_controller.rb:15:in `create' test/integration/users_login_test.rb:22:in `block in <class:UsersLoginTest>'
下記がsessions_controller.rbのcreateアクションの中身です。SessionsControllerのcreateアクションのローカル変数か,メソッドが定義されていないと書いてありましたので、怪しそうなlog_in userとremember userを確認したんですが、SessionsHelperに記載されています。
[SessionsController] def create user = User.find_by(email: params[:session][:email].downcase) if user && user.authenticate(params[:session][:password]) log_in user remember user # SessionsHelper redirect_to user else flash.now[:danger] = 'Invalid email/password combination' render 'new' end end
[SessionsHelper] def log_in(user) session[:user_id] = user.id end def remember(user) user.remember cookies.permanent.signed[:user_id] = user.id cookies.permanent[:remember_token] = user.remember_token end
他にusers_login_test.rbに対するエラー内容が記載されていたので、22行目(自分のPC)のpost login_pathを確認しているんですが、何が間違っているのかわかりませんでした。ご教授頂ければ幸いです。宜しくお願い致します。
test "login with valid information followed by logout" do get login_path post login_path, params: { session: { email: @user.email, password: 'password' } } assert is_logged_in? assert_redirected_to @user follow_redirect! assert_template 'users/show' assert_select "a[href=?]", login_path, count: 0 assert_select "a[href=?]", logout_path assert_select "a[href=?]", user_path(@user) delete logout_path assert_not is_logged_in? assert_redirected_to root_url delete logout_path follow_redirect! assert_select "a[href=?]", login_path assert_select "a[href=?]", logout_path, count: 0 assert_select "a[href=?]", user_path(@user), count: 0 end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/10 08:17
2020/01/10 09:03
2020/01/10 09:35
2020/01/10 09:39
2020/01/10 12:00
2020/01/11 08:01