Factory Girl:将transient属性的默认值设置为factory
Factory Girl: Set default value of transient attribute to factory
我有一个 FG 工厂,它 returns 一个复杂的散列,我们称它为 zhash,因为它是在工厂的末尾定义的(FG 按字母顺序加载文件)。
该散列在模型上存储为 json 字符串(对或错,就是这样)。我在该模型的工厂上有一个忽略变量(瞬态属性),允许我将该属性设置为我的自定义哈希,但我想将该忽略变量的默认值设置为该哈希工厂的默认值。
例如
FactoryGirl.define do
factory :model do
ignore do
# this does not work, because the factory has not been defined.
hash FactoryGirl.create(:zhash)
end
end
end
FactoryGirl.define do
factory :zhash do
... #return hash
end
end
我可以将 zhash 文件的名称更改为 0_zhash
,但是是否有 FactoryGirl 方法可以将工厂设置为忽略变量的默认值?
FactoryGirl.define do
factory :model do
ignore do
zhash
end
numeric_attribute zhash.count
end
end
将不起作用,但是
FactoryGirl.define do
factory :model do
ignore do
zhash
end
numeric_attribute { zhash.count }
end
end
将
(另外,"ignore" 在当前的 factorygirl 中已弃用,将由 "transient" 代替)
我有一个 FG 工厂,它 returns 一个复杂的散列,我们称它为 zhash,因为它是在工厂的末尾定义的(FG 按字母顺序加载文件)。
该散列在模型上存储为 json 字符串(对或错,就是这样)。我在该模型的工厂上有一个忽略变量(瞬态属性),允许我将该属性设置为我的自定义哈希,但我想将该忽略变量的默认值设置为该哈希工厂的默认值。
例如
FactoryGirl.define do
factory :model do
ignore do
# this does not work, because the factory has not been defined.
hash FactoryGirl.create(:zhash)
end
end
end
FactoryGirl.define do
factory :zhash do
... #return hash
end
end
我可以将 zhash 文件的名称更改为 0_zhash
,但是是否有 FactoryGirl 方法可以将工厂设置为忽略变量的默认值?
FactoryGirl.define do
factory :model do
ignore do
zhash
end
numeric_attribute zhash.count
end
end
将不起作用,但是
FactoryGirl.define do
factory :model do
ignore do
zhash
end
numeric_attribute { zhash.count }
end
end
将
(另外,"ignore" 在当前的 factorygirl 中已弃用,将由 "transient" 代替)