学習32日目 商品購入機能のテストコードにPassword is invalid. Include both letters and numbersが出た
お疲れ様です。KATUUUNです。
中高と陸上部でした。
今日、オリンピックの競歩で日本人のメダルを見た時は感動しました。
今日はフリマアプリで商品購入機能を実装しました。
createアクションに関するエラー対処とテストコード記述に苦戦したためbinding.pryオタクになってしまいました。
今日も苦戦した箇所をアウトプットします。
・商品購入機能のモデル単体テストコードにPassword is invalid. Include both letters and numbersが出た
商品購入機能のテストコード内容は
住所、電話番号、クレジットカード情報のpresense trueや半角などの正規表現のモデル単体テストコードです。
そこにいきなり
ActiveRecord::RecordInvalid: Validation failed: Password is invalid. Include both letters and numbers
が現れたら驚きませんか?パニックになりました。
・結論
パスワードはuserモデルの単体テストコードにおいてFakerというgemでテストコードに用いる値をランダムに生成していました。
password {Faker::Internet.password(min_length: 6)}
この記述だと生成されるランダムのパスワードは時には数字のみパスワードだったり、英字のみのパスワードだったりします。それが上記のエラーにつなっが模様
password {"1a"+Faker::Internet.password(min_length: 6)}
こう記述することで英字と数字を最低1文字ずつ含めることができて解決です。