我的目标是创建一个工厂,其中包含几个具有相同值的字段,例如,我希望name和full_name相等。
FactoryBot.define do
factory :brand do
n = Faker::Company.name
name { n }
full_name { n }
end
end
上面的方法不起作用,因为n只得到一次值。
那么,如何对某个块求值以与一些动态字段共享其数据呢?
另一例:我有YML文件与品牌,和方法get_random_brand返回哈希与品牌字段:
FactoryBot.define do
factory :brand do
b = get_random_brand
name { b['name'] }
full_name { b['full_nam'] }
end
end
当阅读工厂定义时,我理解 factory do。
如何评估get_random_brand每个创建的工厂是否只有一个?
1条答案
按热度按时间oyxsuwqo1#
依赖属性在FactoryBot中实际上非常简单,因为您只需调用块中其他属性的方法:
例如,您可以执行以下操作:
上面的方法不起作用,因为n只取一次值。
这是因为
factory ... do
块是在读取工厂定义时计算的,而不是每次使用工厂时。