我有这些模特:
class Company < ActiveRecord::Base
has_many :terminal_values
end
class TerminalValue < ActiveRecord::Base
belongs_to :company
end
这是spec/factories.rb
:
FactoryGirl.define do
factory :company do
sequence(:code){|n| n + 1000 }
end
factory :terminal_value do
company
end
end
为了测试has_many
关系,我写了这个测试:
it do
company = create(:company)
create(:terminal_value, company: company)
expect(company.terminal_values.first).to_not eq(nil)
end
但测试失败了。我做错了什么?
答案 0 :(得分:0)
即使在您的示例中,您为终端对象提供公司,但在声明工厂时您必须提供完整的定义,您可以尝试这样做:
工厂:公司做 序列(:代码){| N | n + 1000} 端factory:terminal_value do 公司{build(:company)} 端
同时发布运行测试时遇到的错误。