単体テストコードの記述の注意点。
first_name_kana_full_width { 'タナカ' }
last_name_full_width { '太朗' }
last_name_kana_full_width { 'タロウ' }
birthday { 1955_01_01 }
最初はこのような記述をしコミット、プッシュしていたがレビュワーの方から
生年月日(birthday)はデータ型なので値をクォーテーションで囲む必要があるとのことだった。
以下のように修正するとテストを実施する際に今まで問題なくできていた
テストコードの部分でエラーがターミナルで発生...
errors: Birthday can't be blank
しかし付随するusers.rbの記述には以下のように記述しておりエラーの原因が分からなかった。
FactoryBot.define do
factory :user do
name { '田中tanaka' }
email {Faker::Internet.free_email }
password { '11111a' }
password_confirmation { '11111a' }
first_name_full_width { '田中' }
first_name_kana_full_width { 'タナカ' }
last_name_full_width { '太朗' }
last_name_kana_full_width { 'タロウ' }
birthday { "1955_01_01" }
end
end
birthday記述しているのにと悩んでいたがどうやらクォーテーションで囲む際は
アンダースコアではなくハイフンにしないといけないらしく
FactoryBot.define do
factory :user do
name { '田中tanaka' }
email {Faker::Internet.free_email }
password { '11111a' }
password_confirmation { '11111a' }
first_name_full_width { '田中' }
first_name_kana_full_width { 'タナカ' }
last_name_full_width { '太朗' }
last_name_kana_full_width { 'タロウ' }
birthday { "1955-01-01" }
end
end
こちらの記述にすることで無事、エラーなく単体テストコードの記述に成功。
最後になぜデータ型をクォーテーションで囲む必要があるのかというと
文字列として扱いたいからというのが私が調べた上での見解。