13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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

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

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

  • fter_build コールバックを使え

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

  • after_create コールバックを使え

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

  • inheritance を使え

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

  • trait を使え

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

  • ignore を使え

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

  • モデルの正当性を保つために最低限必要な関連先モデルは自動で作成
  • その他テストのごとに必要な関連が変わる場合には、何を持つかという情報を trait で指定する
  • 作成時に引数を渡すことで変更できると特に便利な属性値は、ignore な属性値を利用し、どの FactoryGirl 定義上からでも同じインターフェイスで指定できるようにしてある
  • inheritance でモデルの種類を決め、trait で調整して望みの状態を指定する
13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?