0
0

More than 3 years have passed since last update.

テストコード データ型の注意点

Posted at

単体テストコードの記述の注意点。

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

こちらの記述にすることで無事、エラーなく単体テストコードの記述に成功。
最後になぜデータ型をクォーテーションで囲む必要があるのかというと
文字列として扱いたいからというのが私が調べた上での見解。

0
0
2

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