ぞえの技術めも

Ruby on Rails勉強中

【69日目】【1日20分のRailsチュートリアル】【第7章】演習の2.(無効なユーザー登録時のエラーメッセージのテストを追加)

Ruby on Railsチュートリアル(第3版)

今日は「7.7 演習」の2.から。

7.7 演習

  1. リスト7.18で実装したエラーメッセージに対するテストを書いてみてください。
    どのくらい細かくテストするかはお任せします。リスト7.32にテンプレートを用意しておいたので、参考にしてください。

無効なユーザー(メールアドレスが無効とかパスワードの文字数足りないとか)を登録しようとしたときのエラーメッセージは、
・エラーメッセージ(エラーの数、エラーの詳細)
・エラーが出ているフォーム
を表示している。

無効なユーザーを登録しようとしたときに上記が表示されていることをテストすればいいのでテンプレートを元に書くとこんな感じ?

test/integration/users_signup_test.rb

  test "invalid signup information" do
    :
    assert_select 'div#error_explanation'
    assert_select 'div.field_with_errors'
  end

テスト実行して問題ないことを確認。

$ bundle exec rake test
21 tests, 45 assertions, 0 failures, 0 errors, 0 skips

assert_selectについては下記記事を参考にしました。

d.hatena.ne.jp

assert_selectを使うとレスポンスのHTMLが想定通りかをテストできるそう。
無効なユーザーを登録しようとしたときのビューに、エラーメッセージを表示する<div>タグ(id名とclass名で指定)が含まれていればテストOK、という感じかな。

assert_selectの理解に結構時間がかかった。。。。一個しか進まなかった。

今日の作業時間は【30分】

次は「7.7 演習」の3.から。