luc*_*zbo 12 ruby-on-rails factory-bot
我的factories.rb
文件变得太大而无法维护,我现在正试图将其拆分到factories
目录中的许多文件中.问题是我不知道如何处理依赖项.
总而言之,我试图以下列方式分割我的工厂.所有序列都转到sequences.rb
文件,每个工厂定义都转到单独的文件,如下所示:
工厂/ sequences.rb
FactoryGirl.define do
sequence :name {|n| "Name #{n}" }
sequence :email {|n| "person#{n}@example.com" }
end
Run Code Online (Sandbox Code Playgroud)
工厂/ user.rb
FactoryGirl.define do
factory :user do
name
email
end
end
Run Code Online (Sandbox Code Playgroud)
工厂/ post.rb
FactoryGirl.define do
factory :post do
name
content "Post Content"
user
end
end
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,我得到的name
是没有定义的错误.我可以通过传递一个块的每个关联(如处理这个name
,email
,user
等)提及,但它似乎是丑陋和不干燥.
factory_girl
知道应该加载哪些文件的序列?您可以使用generate
方法简单地实现结果:
# factories/sequences.rb
FactoryGirl.define do
sequence(:email) { |n| "person#{n}@example.com" }
end
# factories/user.rb
FactoryGirl.define do
factory :user do
email { generate(:email) }
password '12345678'
end
end
Run Code Online (Sandbox Code Playgroud)
然后尝试一下:
FactoryGirl.create :user
=> #<User:0x007fa99d2ace40
id: 1,
email: "person1@example.com",
. . .>
Run Code Online (Sandbox Code Playgroud)
序列文档了解更多详细信息.
归档时间: |
|
查看次数: |
930 次 |
最近记录: |