skip_createとto_create、そしてinitialize_with
skip_create
メソッドとto_create
メソッドとinitialize_with
メソッドは、factory_botによる構築戦略とのやり取りの仕方を制御します。
これらのメソッドはfactory
定義ブロック内で呼べます。
作用はそのファクトリに留まります。
FactoryBot.define
内にすると大域的な変更として作用します。
initialize_with
initialize_with
メソッドはブロックを取り、ファクトリのクラスのインスタンスを返します。
attributes
メソッドを使うことができます。
このメソッドはオブジェクトの全てのフィールドと値からなるハッシュです。
既定の定義は以下です。
initialize_with { new }
to_create
to_create
メソッドはFactoryBot.create
戦略を制御します。
このメソッドはinitialize_with
で構築されたオブジェクトとfactory_botの文脈を取るブロックを取ります。
文脈にはtransient
ブロックからの追加のデータがあります。
既定の定義は以下です。
to_create { |obj, context| obj.save! }
skip_create
メソッドはto_create
を何もしないように変える早道です。
これによりcreate
戦略をbuild
の同意語として使えます。
ただしcreate
フックは追加で掛かっています。