2014-12-04 19 views
0

在我的Rails项目,我有一个包含像这样的很多工厂的工厂文件:加载一个大型工厂的量测试套件之前

FactoryGirl.define do 
    factory :'59000', class: PostalCode do 
    value "59000" 
    name "toto" 
    end 
    factory :'59800', class: PostalCode do 
    value "59800" 
    name "toto" 
    end 
    factory :'59777', class: PostalCode do 
    value "59777" 
    name "toto" 
    end 
    factory :'59910', class: PostalCode do 
    value "59910" 
    name "toto" 
    end 
    factory :'59170', class: PostalCode do 
    value "59170" 
    name "toto" 
    end 
    factory :'59155', class: PostalCode do 
    value "59155" 
    name "toto" 
    end 
    factory :'59510', class: PostalCode do 
    value "59510" 
    name "toto" 
    end 
    factory :'59259', class: PostalCode do 
    value "59259" 
    name "toto" 
    end 

    ... 

end 

你知道我可以建立/创建的所有工厂这个文件包含在测试套件之前?

谢谢, 朱

+0

也许你应该考虑装置而不是工厂。 – 2014-12-04 15:22:48

+0

为什么?我对工厂没问题! – 2014-12-04 16:22:35

+0

使用工厂是很多额外的创造。赛程将更快 – 2014-12-04 20:32:37

回答

1

解决方案1:

before do 
    %w(59000 59259 59510).each do |code| 
    create(code) 
    end 
end 

解决方案2:

before do 
    FactoryGirl.factories.select { |factory| 
    factory.send(:class_name) == PostalCode 
    }.each{|factory| FactoryGirl.create(factory.name) } 
end 

解决方案3:

以前的一些变化。

0

解决方案2太好了!非常感谢 !

我只是把它喜欢它:

config.before(:suite) do 
    FactoryGirl.factories.select { |factory| 
     factory.send(:class_name) == PostalCode 
    }.each{|factory| FactoryGirl.create(factory.name) } 
    end 

在我rails_helper配置文件和我的邮政编码是在我的数据库的种子。

再次,谢谢!

朱尔斯