2
我想使用FactoryGirl工廠創建與has_many
關係的實例並失敗。 我有兩個類:計算機和網卡。每臺計算機可以有多個網卡。has_many關係使用FactoryGirl
定義了兩個ActiveRecords:
1.
class Computer < ActiveRecord::Base
has_many :network_cards
end
2.
定義的下列工廠:
1.
factory :computer do
sequence(:name) { |n| "PC_#{n}" }
transient do
network_cards_count 1
end
after(:create) do |computer|
create_list(:network_card, evaluator.network_cards_count, computer: computer)
done
end
2.
factory :network_card do
sequence(:name) { |n| "NC_#{n}" }
sequence(:type) { |n| "TYPE_#{n}" }
end
如今,在RSpec的測試開創了電腦,當我得到一個奇怪的行爲,我無法解釋。
@computer_1 = FactoryGirl.create(:computer)
@computer_1.network_cards.size #Expect 1. Got 0. Why?
@computer_1.reload
@computer_1.network_cards.size # Got 1
任何想法我錯過了什麼?
是'evaluator'可用的,如果它不是在你的塊如@艾哈邁德的答案嗎?我一直指定它。 – Dan
@丹這是一個錯字。固定 – ntrax111