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