Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

FactoryGirl - こうしたいときはこうする

More than 5 years have passed since last update.

関連先モデルも同時に作成したい

  • association 先に別の FactoryGirl を指定する
  • strategy に注意
    • id がふられないと困るものには create、そうでないものには build を指定する

モデル build 直後にある処理を行い、属性値を決めたい

  • fter_build コールバックを使え

モデル create 直後にある処理を行い、属性値を決めたい

  • after_create コールバックを使え

ある特定の属性値を持ったモデルが欲しい

  • inheritance を使え

ある特定の関連モデルを持ったモデルが欲しい

  • trait を使え

作成時に引数を与え、属性値を動的に指定したい

  • ignore を使え

全体の記述方針はどうすればいいのか

  • モデルの正当性を保つために最低限必要な関連先モデルは自動で作成
  • その他テストのごとに必要な関連が変わる場合には、何を持つかという情報を trait で指定する
  • 作成時に引数を渡すことで変更できると特に便利な属性値は、ignore な属性値を利用し、どの FactoryGirl 定義上からでも同じインターフェイスで指定できるようにしてある
  • inheritance でモデルの種類を決め、trait で調整して望みの状態を指定する
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away