Don*_*lio 2 rspec ruby-on-rails factory-bot
我正在使用rspec测试一个Company有几个的模型Addresses.
我正在使用工厂女孩来制作我的测试环境,我希望默认公司注册一些地址,而我希望公司的特定情况没有任何特征Address.
这就是我现在在工厂里所做的事情:
FactoryGirl.define do
factory :company do
sequence(:name) { |n| "company #{n}" }
description { "description #{name}" }
trait :no_address do
addresses nil
end
after(:create) do |company, evaluator|
create_list(:address, 3, company: company)
end
end
end
Run Code Online (Sandbox Code Playgroud)
如何制作工厂,以便在使用特性时no_address根本不创建地址?
谢谢,
FactoryGirl的瞬态属性可能正是您所需要的:
FactoryGirl.define do
factory :company do
transient do
create_address true
end
sequence(:name) { |n| "company #{n}" }
description { "description #{name}" }
trait :no_address do
transient do
create_address false
end
end
after(:create) do |company, evaluator|
create_list(:address, 3, company: company) if evaluator.create_address
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1657 次 |
| 最近记录: |