使用Factory Girl为线程和线程参与创建工厂

时间:2011-03-20 00:50:02

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

有人可以提供一个例子或指出我可以在哪里学习如何做Factory Girl嵌套模型关联吗?

线程必须至少有一个ThreadParticipation

现在我在factories.rb中有我的主题如下:

Factory.define :thread do |thread|
  thread.title             "mythread"
end

如何创建ThreadParticipation?

由于

1 个答案:

答案 0 :(得分:3)

factory_girl来源中的Getting Started file包含有关关联的信息。

  

可以生成关联实例   通过使用关联方法时   定义一个惰性属性:

factory :post do
  # ...
  author 
end
     

您还可以指定其他内容   工厂或覆盖属性:

factory :post do
  # ...
  association :author, :factory => :user, :last_name => 'Writely'
end

所以,在你的实例中,我会想象这样的事情会发生:

Factory.define :thread do |thread|
  thread.title "mythread"
  thread.thread_participation
end

Factory.define :thread_participation do |ppn|
  ppn.attribute "value"
end

如果您使用的是集合而不是has_one / belongs_to关联,则可以创建一个数组:

Factory.define :thread do |thread|
  thread.title "mythread"
  thread.thread_participations { |a| [a.association(:thread_participation)] }
end