登録画面でデフォルト時に正規表現を使ったpasswordの作成は出来ております。
テストを書こうと思ったのですが、sequence(:password) { XXXXXX }
XXXXXの部分に正規表現を使ったpasswordを入れたいと思っています。
コントローラーのアクションを呼び出して書くことは出来るのでしょうか?
もし、出来ない場合、factroyファイルでどのように正規表現のpasswordを書くのでしょうか?
ご教示いただけますと幸いです。
rb
1FactoryBot.define do 2 factory :user do 3 sequence(:password) { password_new } 4 sequence(:password_confirmation) { |n| "Password@#{n}" } 5 end 6end
controller.rb def password_new(length = 8) numbers = [*0..9] alpha_bigs = [*'A'..'Z'] alpha_smalls = [*'a'..'z'] symbols = '! @ ; :'.split(/\s+/) codes = [numbers, alpha_bigs, alpha_smalls, symbols].shuffle password = [] length.times do |i| password << codes[i % codes.length].sample(1) end password.shuffle.join end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/23 05:21