Ruby on rails Tutorial 9章を勉強しているのですが、構文的に問題がないように見えるのに(インデントの仕方が違うだけ)、自分で打ち込んだコードではなぜかエラーになってしまいます。Rails tutorial 9-2-4
エラー箇所 ターミナル
$be rails test Started with run options --seed 63652 FAIL["test_login_with_remembering", #<Minitest::Reporters::Suite:0x00007fa184a4ae20 @name="UsersLoginTest">, 0.9224149999208748] test_login_with_remembering#UsersLoginTest (0.92s) Expected nil (NilClass) to respond to #empty?. test/integration/users_login_test.rb:47:in `block in <class:UsersLoginTest>' FAIL["test_login_without_remembering", #<Minitest::Reporters::Suite:0x00007fa188352420 @name="UsersLoginTest">, 0.9692500000819564] test_login_without_remembering#UsersLoginTest (0.97s) Expected nil (NilClass) to respond to #empty?. test/integration/users_login_test.rb:54:in `block in <class:UsersLoginTest>' 22/22: [================================================================] 100% Time: 00:00:01, Time: 00:00:01 Finished in 1.05035s 22 tests, 48 assertions, 2 failures, 0 errors, 0 skips
ここでtest_helper.rbのコードを自分で打ち込まずにコピペするとテストが通るので、ここのコードが原因だと思うのですが、30分ほど見比べても構文的にどこがおかしいのかわかりません・・・。
手打ちのtest_helper.rb
class ActionDispatch::IntegrationTest def log_in_as(user, password: 'password', remember_me: '1') post login_path, params: { session: { email: user.email, passsword: password, remember_me: remember_me } } end end
コピペしたtest_helper.rb
class ActionDispatch::IntegrationTest # テストユーザーとしてログインする def log_in_as(user, password: 'password', remember_me: '1') post login_path, params: { session: { email: user.email, password: password, remember_me: remember_me } } end end
一体どこがおかしいのでしょうか。また、linterなどを入れた方が良いでしょうか?おわかりにいらっしゃいましたらどうかご教授お願いします。
一応関連するtestファイルも載せておきます。
integration/users_login_test.rb
integration/users_login_test.rb
1test "login with remembering" do 2 log_in_as(@user, remember_me: '1') 3 assert_not_empty cookies['remember_token'] ←47行目 4 end 5 6 test "login without remembering" do 7 log_in_as(@user, remember_me: '1') 8 delete logout_path 9 log_in_as(@user, remember_me: '0') 10 assert_empty cookies['remember_token'] 11 end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。