無効なユーザー登録に対するテスト


はじめに

Railsチュートリアル7章「リスト7.23:無効なユーザー登録に対するテスト」のコードの解説です。

ユーザー登録ボタンを押したときに (ユーザー情報が無効であるために) ユーザーが作成されないことを確認します。

コード

test/integration/users_signup_test.rb
require 'test_helper'

class UsersSignupTest < ActionDispatch::IntegrationTest


  test "invalid signup information" do
    get signup_path
    #getメソッドでユーザー登録ページにアクセス

    assert_no_difference 'User.count' do
    #User.countが変わったらエラーを出す。
      post users_path, params: { user: { name:  "",
                                         email: "user@invalid",
                                         password:              "foo",
                                         password_confirmation: "bar" } }
      #無効なユーザーデータをPOSTする
      #正常な場合はUser.countは変わらずtrueとなる。
    end
    assert_template 'users/new'
    #サインアップに失敗した時に再度ユーザー登録画面になることを確認。
  end
end