jua*_*tas 12 ruby-on-rails factory-bot
我希望当我在工厂中进行更改时,我会在rails控制台中看到它们而不重新启动所有控制台.
我找到了一些线条并对它们进行了测试,对所发生的事情了解不多,文档对我来说并不清楚:
FactoryGirl.reload
Run Code Online (Sandbox Code Playgroud)
我也测试过:
> 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
Run Code Online (Sandbox Code Playgroud)
hjb*_*lok 16
您还可以使用reload!重新加载控制台环境,但不会重新加载工厂.使用FactoryGirl.reload重新加载工厂的定义.它(重新)从以下位置加载这些定义(请参阅文档):
test/factories.rb
spec/factories.rb
test/factories/*.rb
spec/factories/*.rb
Run Code Online (Sandbox Code Playgroud)
您提到的其他命令用于清除和加载定义.FactoryGirl.factories.clear清除所有已加载的工厂定义,同时FactoryGirl.find_definitions从文件重新加载所有定义.
factory_girl_rails如果您的on Rails,请务必使用gem.例如factory :user,当您定义了a时,可以使用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 }
Run Code Online (Sandbox Code Playgroud)
然后FactoryGirl.reload工作.
| 归档时间: |
|
| 查看次数: |
6712 次 |
| 最近记录: |