Factory Girl:将transient属性的默认值设置为factory

时间:2015-07-24 19:40:38

标签: ruby ruby-on-rails-4 factory-bot

我有一个返回复杂哈希的FG工厂,我们称之为zhash,因为它是在工厂末尾定义的(FG按字母顺序加载文件)。

该哈希被存储为模型上的json字符串(对或错,这是怎么回事)。我在该模型的工厂上有一个忽略变量(一个瞬态属性),它允许我将该属性设置为我的自定义散列,但是我想将该忽略变量的默认值设置为默认值哈希工厂。

e.g。

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方法可以将工厂设置为忽略变量的默认值吗?

1 个答案:

答案 0 :(得分:1)

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

(另外,“忽略”在当前工厂女性中已弃用,将被“瞬态”取代)