无法模拟对象内的对象

时间:2014-03-07 00:12:27

标签: ruby-on-rails ruby-on-rails-3 rspec ruby-on-rails-3.2 factory-bot

我正在尝试使用FactoryGirl将对象嵌套在另一个对象中。我有这个

# app/models/one.rb
class One < ActiveRecord::Base
    has_many :two_and_three
end

第二个模型

# app/models/two_and_three.rb
class TwoAndThree < ActiveRecord::Base
  attr_accessible :cast
  belongs_to :one
end

我试图像这样嘲笑他们:

# spec/factories/one.rb
FactoryGirl.define do
  factory :one do
    two_and_three FactoryGirl.build(:TwoAndThree)
  end
end

# spec/factories/two_and_three.rb
FactoryGirl.define do
  factory :TwoAndThree do
    cast Faker::Name.name
  end
end

我在运行测试时得到uninitialized constant TwoAndThree。如何让FactoryGirl模拟一个模拟对象内的对象?

1 个答案:

答案 0 :(得分:0)

two_and_three.rb中的班级定义不正确。它有One而不是TwoAndThree,这就是为什么你得到一个未初始化的常量错误。它会自动加载文件,但不会将类定义为结果。