fakerの使用方法とFactoryBotとfakerの組み合わせ 【rspec】 【初心者用】
自分自身がつまづいたところを元に、fakerの使用方法、factorybotとfakerの組み合わせ方法を見ていきます。
(Gemのインストールは省きます。)
まず、factorybotはテスト用のリソースを作成するgem、fakerはダミーのデータを作成するgemでした。
これを組み合わせることで、テストで使うデータを簡単に定義することができます。
Fakerダミーデータの生成方法
{ Faker::Internet.email }
ここではemail のダミーデータを生成しています。
{ Faker::A.B }
実際にFakerでダミーデータを生成するとなると
大きく分けてAとBに何を入れるかを判断する必要があります。
ここではemail(これはモデルのカラム名)のダミーデータを作りたいですよね。
そこで以下のfakerのGithubページを参照します。
https://github.com/faker-ruby/faker
Generatorsから作成したいダミーデータのカラムから、該当しそうなAのページに進みます。ここでは、Faker::Internetとします。
すると、Faker::Intenet.email ,Faker::Internet.free_emailなどBに当たる部分の説明(どのようなダミーデータが生成され得るか)を確認でき、ここから選択します。
以上がFakerを使ったダミーデータの生成方法です。
次にFakerとFactory_botの組み合わせを見ていきましょう。こちらはとても簡単です。
factorybotとfakerの組み合わせ
factorybotを適用しているファイル内のデータの定義にfakerを利用するだけです。
spec/factories/messages.rb
FactoryBot.define do factory :message do content {Faker::Lorem.sentence}
user group end end
以上のようにするだけで
buildメソッドなどを用いたときに:messageのcontentカラムにはダミーのデータが入ったインスタンスを生成してくれます。