1
0

More than 3 years have passed since last update.

ちょっと一癖あるRSpecを使ったモデルの単体テストコード 〜ユーザー登録

Posted at

はじめに

 完全に自分用です。モデルの単体テスト(ユーザー登録)の一癖あるコードを残しておきます。

メールアドレス

user_spec.rb
it 'メールアドレスは、@を含む必要があること' do
  @user.email.delete!('@')
  @user.valid?
  expect(@user.errors.full_messages).to include("メールアドレスは不正な値です")
end

パスワード

user_spec.rb
it 'パスワードは、6文字以上での入力が必須であること' do
  @user.password = '12345'
  @user.password_confirmation = @user.password
  @user.valid?
  expect(@user.errors.full_messages).to include("パスワードは6文字以上で入力してください")
end
user_spec.rb
it 'パスワードは、半角英字がないとでの入力が必須であること' do
  @user.password = '123456'
  @user.password_confirmation = @user.password
  @user.valid?
  expect(@user.errors.full_messages).to include("パスワードは不正な値です")
end
user_spec.rb
it 'パスワードは、半角数字がないとでの入力が必須であること' do
  @user.password = 'abcdef'
  @user.password_confirmation = @user.password
  @user.valid?
  expect(@user.errors.full_messages).to include("パスワードは不正な値です")
end
user_spec.rb
it 'パスワードは全角数字では登録できないこと' do
  @user.password = '12345a'
  @user.password_confirmation = @user.password
  @user.valid?
  expect(@user.errors.full_messages).to include("パスワードは不正な値です")
end
user_spec.rb
it 'パスワードとパスワード(かくにん)、値の一致が必須であること' do
  @user.password = '12345a'
  @user.password_confirmation = '12345b'
  @user.valid?
  expect(@user.errors.full_messages).to include("パスワード(かくにん)とパスワードの入力が一致しません")
end
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0