読者です 読者をやめる 読者になる 読者になる

ぞえの技術めも

Ruby on Rails勉強中

【65日目】【1日20分のRailsチュートリアル】【第7章】ユーザー登録成功時のテスト

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

今日は「7.4.4 成功時のテスト」から。

7.4.4 成功時のテスト

有効な情報を送信して、ユーザーが作成されたことを確認します。

assert_differenceを使ってPOSTリクエスト送った後にユーザー数が1増えていることを確認する。

test/integration/users_signup_test.rb

  test "valid signup information" do
    get signup_path
    assert_difference 'User.count', 1 do
      post_via_redirect users_path, user: { name:  "Example User",
                                            email: "user@example.com",
                                            password:              "password",
                                            password_confirmation: "password" }
    end
    assert_template 'users/show'
  end

users_pathにPOSTリクエストを送信するために、post_via_redirectというメソッドを使っていることに注目してください。
このメソッドは、POSTリクエストを送信した結果を見て、指定されたリダイレクト先に移動するメソッドです。

無効なユーザーのテストと違ってリダイレクトさせるのは、リダイレクト先のページのテストもしたいから、なのかな…?
(今回はしてないけど)

ちなみに、ここにflashのテストも追加しておくとよいでしょう。これは演習として残しておきます (7.7)。

flashのテストにリダイレクトが必要なんでしょう。多分。

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

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

テストコードの意味を理解するのに時間かかった。
いざ自分で一から書くときに書けるかな。。。。

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

次は「7.5 プロのデプロイ」から。