工厂女孩:创建一个与现有对象关联的对象

时间:2011-08-03 09:20:09

标签: ruby-on-rails ruby-on-rails-3 rspec factory-bot

我想创建两个对象,这些对象引用我在before(:each)块中创建的另一个单个对象

例如

# in my factories.rb file..
factory :blah_1 do
  association :foo, :factory => :foo
end

...

# in my spec..

before(:each) do
  foo = Factory(:foo)
end

...

foo.blahs << Factory(:blah_1)
foo.blahs << Factory(:blah_1)
# some test on foo to make sure the right thing happened

当我运行此规范时,它会尝试为blah_1和blah_2创建一个foo实例,因为我不允许重复属性而失败。

喜欢将blah_1和blah_2同时送到引用一个foo工厂。

提前感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

我最终做了什么来解决这个问题(请告诉我,如果这是不好的形式!)..

# in my factories.rb..
factory :blah_1 do
  # attributes, no associations
end

# in my spec..
before(:each) do 
  @foo = Factory(:foo)
end

...

foo.blahs << Factory(:blah_1, :foo => @foo)
foo.blahs << Factory(:blah_2, :foo => @foo)

从我的角度看似乎很合理。