我有一个模型 Foo
,它 has_many 'Bar'。我为每个对象都有一个 factory_girl 工厂。Bar 的工厂与 Foo 建立了关联;当创建 Bar 时,它将实例化一个 Foo。
我想要一个 Factory,它可以创建包含 Bar 的 Foo。最理想的情况是这个 Bar 是通过 :bar 工厂创建的,并且遵循用于创建 Foo 的 build 策略(create/build)。
我知道我可以调用 :bar 工厂,然后从新 Bar 中获取 Foo 引用。但我想避免这种方式;在我的测试案例中,重要的对象是 Foo;调用 Bar 工厂似乎有点绕弯子。此外,我可以看到需要一个具有多个 Bars 的 Foo。
在 factory_girl 中是否有可能实现这个功能?如何定义父对象中的这种关系?
<<
添加关联会使更改持久化。为了避免这种情况,应该将after(:build)
设置为foo.association(:bars).add_to_target(Factory.build(:bar, :foo => foo))
。 - stevenspiel