経緯
プログラミング初学者です。
Rails tutorial7章にて発生したタイトルにあるエラーに苦戦し、最終的に強引に?解消したことがあり、
現在9章にてtestがfailureしてしまう問題に直面したのですが、自身での原因の特定に苦戦しており
以前7章で行った変更が原因になってしまっている可能性があるなと感じる
目的
- 以前行った変更に問題がないか明確にしたい
- もし問題があるならなにか取れそうな対処法はあるか知りたい
*かなり初歩的な問題かもしれませんがヒントや参考になりそうなことでも教えていただけるとありがたいです。
以前行った変更
Rails tutorial7章integration testにおいて
wrong number of arguments (given 2, expected 1)が表示されてしまう問題に対して、
同じ問題に関する質問の解答にあった対処法を行った。
Rails tutorialのサンプルコード↓ (errorとなってしまう)
ruby
1post login_path, params: { session: { email: @user.email, 2 password: "invalid" } }
↓ ↓ ↓ given 2 expected 1とあるのでコンマを消した(errorは解消,testパス)
ruby
1post login_path params: { session: { email: @user.email, 2 password: "invalid" } }
上の変更を加えたテストの全体部です ↓
ruby
1require "test_helper" 2 3class UsersLoginTest < ActionDispatch::IntegrationTest 4 def setup 5 @user = users(:shuhei) 6 end 7 test "login with valid email/invalid password" do 8 get login_path 9 assert_template 'sessions/new' 10 post login_path params: { session: { email: @user.email, 11 password: "invalid" } } 12 # *got failure message from the line below "Expected true to be nil or false" 13 assert_not is_logged_in? 14 assert_template 'sessions/new' 15 assert_not flash.empty? 16 get root_path 17 assert flash.empty? 18 end
同じエラーがでる箇所複数を同じ方法で修正しました。
そもそもカンマを抜くことによって文法的に後述のparamsが通らなくなったりと、本来の目的であるログインのテストがうまく実行されなくなってしまっているのでしょうか?
よろしくお願いします
補足
現在出てしまっているFailure情報
上のコードブロックのコメント(自身でFailure原因部分がわかるように追加した)
*got failure message from the line below "..."の部分の直下がline25です
FAIL["test_login_with_valid_information_followed_by_logout", #<Minitest::Reporters::Suite:0x000000013f318c48 @name="UsersLoginTest">, 1.2272799999918789] test_login_with_valid_information_followed_by_logout#UsersLoginTest (1.23s) Expected false to be truthy. test/integration/users_login_test.rb:25:in `block in <class:UsersLoginTest>'
現在、似たような構造のテストで3ヶ所Failureが出てしまってします、いずれの場所も、上の方で書いた「以前行った変更」が入っているブロックだったのでそこに問題があるのかと思った次第です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。