0
0

More than 3 years have passed since last update.

Ruby on rails モデル単体テストでのメールアドレス二重登録テストについて

Posted at

新規登録時のテストを異常系のテスト実装していた時の疑問です。
単体テスト作成時validateでnicknameの空登録やパスワードの空登録や文字数制限はしましたが、e-mailについて制限した記述をした記憶が全くないのに気づきました。
設定のないもの(ルール?)についてのテストなど意味がないと思い調べました。
けつろん、設定ありました。

解答

app>models>user.rb
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, `rgb(`:validatable

  has_many :tweets
  has_many :comments
  validates :nickname, presence: true, length: { maximum: 6 }
end

installしたdeviseの中のvalidatableというGemモジュールにメール登録2重を禁止が設定してあったようです。

(詳細)//////////////////////////////////////////////////
deviseの使い方
devise gemはモジュールの概念に基づいて作成されています。
deviseは大きく10のモジュールから構成されています。

1.Database Authenticatable
2.Registerable
3.Validatable
4.Recoverable
5.Rememberable
6.Confirmable
7.Lockable
8.Timeoutable
9.Trackable
10.Omniauthable

3.Validatable
ユーザーの電子メールとパスワードに関して必要な全ての検証を作成する。
デフォルトではemailのフォーマットに関するバリデーションと、パスワードの長さに関するバリデーションを設定できる。

デフォルト設定の詳細については以下
email 1. 存在すること 2. 一意であること 3. @を含むこと
password 1. 存在すること 2. 6文字以上128文字以下であること

e-mailの一意であることが「二重登録禁止」にあたります。

0
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
0
0