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