おーしまブログ

プログラミングやってます

<Ruby on Rails> FactoryBot

こんにちは、おーしまです。

今回は FactoryBot についてです。

FactoryBotとは、Ruby on RailsのGemのひとつで、


他のファイルにインスタンスのデータを記述しておくことで、
テストを行う際に簡単に呼び出して使う事ができるというものです。


例でいうと、

名前、性別、年齢

のデータでユーザーを登録しているとしたら、

名前:小島、 性別:男、 年齢:25

という風に、FactoryBotに記述しておく事で、

テストする際にいつでも小島を呼び出してテストさせる事ができるという事です。

(実際は、決まった値だけでテストすると「同じEmailなどは使えない」などをテストする際に
 値が重複してしまう事があるため、データの値はランダムで決めます。)




spec/factories/users.rb

FactoryBot.define do
  factory :user do
    name               {"小島"}
    sex                {""}
    age                {"25"}
  end
end

記述するディレクトリはfactoriesディレクトリです。


呼び出す際は、下のように記述します。

@user = FactoryBot.build(:user)

(:user)はFactoryBotでデータを定義した時の値が入ります。
buildはnewメソッドのようなもので、FactoryBotではbuild使って生成します。
一般的にインスタンス変数に代入して使用します。


このようにして、
@userには、22歳男性の小島、が入り@userを用いてテストができるようになりました。


今回はここまでです。
それでは、また〜

ここはどこ おれはだれ それに近いものがあんだよ 始めようとした奴らも迷い始めてる 怖がらせないでよ そりゃ甘くはないけど まだまだ 夢見ていい世界なんでしょ {UVERwould「ハイ!問題作」}