重新加载factory_girl工厂
我希望当我在工厂中进行更改时,我会在rails控制台中看到它们而不重新启动所有控制台。
我找到了一些线条并对它们进行了测试,对所发生的事情了解甚少, 文档对我来说并不清楚:
FactoryGirl.reload
我也测试过:
> FactoryGirl.factories.clear > FactoryGirl.find_definitions # also tested FactoryGirl.factories.find_definitions # but NoMethodError is raised => ActiveRecord::RecordNotFound: Couldn't find Address with ID=277 Torphy Squares
你也可以使用reload!
重新加载控制台环境,但它不会重新加载工厂。 使用FactoryGirl.reload
重新加载Factory定义。 它(重新)从以下位置加载这些定义(请参阅文档 ):
test/factories.rb spec/factories.rb test/factories/*.rb spec/factories/*.rb
您提到的其他命令用于清除和加载定义。 FactoryGirl.factories.clear
清除所有已加载的Factory定义,而FactoryGirl.find_definitions
从文件重新加载所有定义。
如果您的on Rails,请务必使用factory_girl_rails
gem。 例如,当您定义了factory :user
,可以在控制台中使用FactoryGirl.build(:user)
或FactoryGirl.create(:user)
。 这将返回一个User实例。
如果这不起作用,请发布更多详细信息。
我在使用Faker 。 查看解决问题的变化差异:
# factories/building.rb, address is a string - address Faker::Address.street_address + address { Faker::Address.street_address } # factories/user.rb, email is a string - email Faker::Internet.email + email { Faker::Internet.email }
然后FactoryGirl.reload
工作。