2
我想使用FactoryGirl运行一些RSpec测试。工厂女孩属性创建vs构建
我有一个卡模型,可以处于以下状态之一: NEW,ACTIVE,INACTIVE,我分别编号为0,1和2。
我定义我的卡和active_card工厂这样:
factory :card do
sequence(:uid) { |n| "UID_#{n}" }
state Card::NEW
factory :active_card do
state Card::ACTIVE
activated_at { Faker::Time.between(12.months.ago, 9.months.ago) }
end
end
在我的测试中,我曾尝试:
card = create(:active_card)
和我的调试语句
puts card.to_json
吐出来卡的状态属性等于0(NEW)。
当我尝试,
card = build(:active_card),
卡的状态的属性是等于1(ACTIVE)如预期。
有没有人知道为什么当我将数据保存到我的数据库时,为什么会出现错误的状态值?
非常感谢!我的卡模型中有以下钩子: 'before_validation:initialize_state,on :: create',它将状态设置为Card :: NEW。 我只是打电话给我的卡#skip_initialization_state!方法在我的工厂定义之前(:create)。 再次感谢! – davalidator 2014-12-15 15:15:29