我有一个很大的记录列表(类似20,可能更多)和has_many:通过关系,这有点复杂,在yml上看起来很难看。 Factory_girl似乎没有给我简单的能力,只用基于AR的脚本创建夹具(它的方式要短得多)对我能做什么的任何好建议?
答案 0 :(得分: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
答案 1 :(得分:0)
您可以在工厂文件中再次打开模型,并添加一个方法来创建测试记录。类似的东西:
class User
after_create :create_records_for_testing
def create_records_for_testing
# code to create records
end
end
当然,这可能导致混乱,因为您正在测试的模型与您在应用中使用的模型的行为不同。也许有更好的方法?