#対象者
目次
factory botとfixtureとは.
2つの比較.
まとめ
fixtureとfactory botとは.
⇨どちらもテスト用のデータベースに入れるサンプルデータ.
どんな時に使う?.
⇨ユーザーの基本情報(名前、メールアドレス、パスワードなど)にちゃんとバリデーションをかけてからデータベースに登録されているかをテストしたいときに使う。
例えば Twitterのようなアプリがあるとする。
サービスを利用するまでに基本情報の登録が必要。
↓
各項目が記入された状態でデータベースに登録されているかをテストしたい時、毎回手作業で↓のように入力して登録できたか確認するのはめんどくさい.
Name 後藤武.
Email hogehoge@yahoo.co.jp.
Password hoge1234.
Confirmation hoge1234.
そういう時に便利なのが.
⇨fixtureとfactory botというサンプルデータ.
fixtureでは
one: ⇦サンプルデータの名前 name: 後藤武. email: hogehoge@yahoo.co.jp. password: hoge1234. confirmation: hoge1234
↑のサンプルデータを使いたい時
users(:one)
factory botでは
FactoryBot.define do factory :user do name { "後藤武" } email { "hogehoge@yahoo.co.jp." } password { "hoge1234" } end end
こんな感じでかく 使いたい時は
FactoryBot.build(:user)
これで毎回自分でサンプルデータを作らなくても FactoryBot.build(:user)かusers(:one)をするだけでサンプルデータを作成できるのでテストがしやすくなる
2つの比較.
フィクスチャーのメリット.
①比較的早い.
②Railsデフォルト機能のため環境をセットアップする必要がない。
デメリット.
①Rspecで使う場合は外部ファイルにデータが記述されるので別ファイルの内容をテスト時に覚えておかないといけない.
②データを取り込む際にActiveRecordを使わないのでモデルのバリデーション等の機能のテストを行えない.
③データが脆いため保守に時間をかけないといけなくなる。