現在進めている、Railsチュートリアルの第9章のログイン認証において、
リスト 9.25: [remember me] チェックボックスのテスト の部分の実装を行ったのですが、
Minitestを使用したログイン時のCookie保存テストにおいて、チュートリアルでは以下のようなテストを実装しています。
Ruby
1 test "login with remembering" do 2 log_in_as(@user, remember_me: '1') 3 assert_not_empty cookies['remember_token'] 4 end 5 6 test "login without remembering" do 7 # クッキーを保存してログイン 8 log_in_as(@user, remember_me: '1') 9 delete logout_path 10 # クッキーを削除してログイン 11 log_in_as(@user, remember_me: '0') 12 assert_empty cookies['remember_token'] 13 end
2番目のCookieを保存せずにログインの場合をテストするブロック内で、一度Cookieを保存しログインした後、ログアウトし、もう一度今度はCookieを保存せずに再度ログインしていますが、予めログイン→ログアウトを事前に行っているのはなんのためでしょうか。
1番目のブロックでCookieを保存してログインするケースをテストしているので「# クッキーを保存してログイン」の部分はいらないのではと思ってしまいました。
また2つのテストをまとめて、
Ruby
1 test "login without remembering" do 2 # クッキーを保存してログイン 3 log_in_as(@user, remember_me: '1') 4 assert_not_empty cookies['remember_token'] 5 delete logout_path 6 # クッキーを削除してログイン 7 log_in_as(@user, remember_me: '0') 8 assert_empty cookies['remember_token'] 9 end
としても問題ないのかなと思っています。
最初に明示的にログアウト状態にするためかとも思いましたが、その場合は1番目のテストブロックにもログアウトの行がないとおかしいと思ったので、別の理由がなにかあるのかと思っております。
チュートリアル内にこの疑問に対する解説がなかったので、もし敢えて2番目のブロックでログイン→ログアウトを行う理由がありましたら、教えていただけると助かります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/05/16 11:16
2018/05/16 14:52