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カラムにはダミーのデータが入ったインスタンスを生成してくれます。