0

我有一个带有 has_many :through 关系的大记录列表(大约 20 个,可能更多),这有点复杂,在 yml 上看起来很难看。Factory_girl 似乎并没有给我简单的能力来使用基于 AR 的脚本创建夹具(这样会短很多)关于我能做什么的任何好的建议?

4

2 回答 2

2

不要猴子补丁!使用工厂女孩!(她很可爱):

Factory.define(:user) do |t|
   t.factory { |a| a.assocation(:factory) }
end

Factory.define(:factory) do |t|
  t.name  "Test Factory"
end

在我们的规范中这样做:

before(:each) do 
  @factory = Factory(:factory)
  20.times do
    Factory(:user, :factory => @factory)
  end
end
于 2009-09-09T14:44:54.940 回答
0

您可以在您的工厂文件中再次打开您的模型并添加一个方法来创建测试记录。就像是:

class User 
  after_create :create_records_for_testing
  def create_records_for_testing
    # code to create records
  end
end

当然,这可能会导致混乱,因为您正在测试的模型与您在应用程序中使用的模型的行为不同。也许有更好的方法?

于 2009-09-09T01:32:11.910 回答