0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

英数字混合パスワードのテストの仕方

Posted at

#概要
RSpecでモデルの単体テストを行う際に英数字混合のpasswordをFactoryBotでどのようにしてダミーデータを作成するか、考案に時間が掛かった為備忘録として書き留めておきます。

実装したいpasswordの条件

  • 6文字以上であること
  • 英数字混合であること

設定したvalidation

models/user.rb
validates :password, format: { with: /\A(?=.*?[a-z])(?=.*?\d)[a-z\d]+\z/i }

最初に設定したFactorybot

spec/factories/users.rb
factory :user do
 password {Faker::Internet.password(min_length: 6)}

結果
このダミーデータでも単体テストは成功するが、まれに失敗します。
特に縛りがないパスワードの為、まれに整数のみになってしまうからです。

#結論
Factorybotを下記のように修正することで整数のみになることを防ぎました。

spec/factories/users.rb
factory :user do
 password {'1a' + Faker::Internet.password(min_length: 4)}

#最後に
自分のような初学者の方で、ダミーデータ作成時のひとつの例として参考になれば幸いです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?