今更factory_girl v1.3.3の話
factory_girlでデータ定義していくときに少しだけ値が違うみたいな時は
継承してdefineできる
#-*- coding: utf-8 -*- Factory.define :madoka do |f| f.first_name 'kaname' f.last_name 'madoka' end Factory.define(:homura, :parent => :madoka) do |f| f.last_name 'homura' end ## Factory(:homura)すると鹿目ほむらちゃんができるとかそういうはなし
あと、注意していないと忘れるのは参照元のモデルのFactoryを作るとき
参照先を遅延評価を使って作成した時
## factory Factory.define :hoge do |f| f.fuge { Factory(:fuge) } end
参照先のテストをしていてFactory(:hoge)を実行していて
参照元を作成したいとなった時にうまくいかない
こういうやつですか
hoge = Factory(:hoge) hoge.fuge = Factory(:fuge)
当然ながらFactory(:fuge)したときにFactory(:hoge)が遅延評価され
hogeとは全く関係ないHogeを関連先に持った値が作成されてしまうので
そういうときはこうなのかな
hoge = Factory(:hoge) hoge.fuge = Factory(:fuge, :hoge => hoge)