Ruby on rails RSpec-测试是否设置了活动记录关联

Ruby on rails RSpec-测试是否设置了活动记录关联,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,rspec2,rspec-rails,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Rspec2,Rspec Rails,我无法测试以下内容。创建对象时,将指定挂起状态。该状态实际上是一个活动记录关联。看起来是这样的 def object belongs_to :object_status end def object_status has_many :objects def self.pending find_by_name('pending') end end 然后在控制器中创建它来执行此操作 @object = Object.new(params[:object]) @objec

我无法测试以下内容。创建对象时,将指定挂起状态。该状态实际上是一个活动记录关联。看起来是这样的

def object
  belongs_to :object_status
end

def object_status
  has_many :objects

  def self.pending
    find_by_name('pending')
  end
end
然后在控制器中创建它来执行此操作

@object = Object.new(params[:object])
@object.object_status = ObjectStatus.pending
@object.save
在RSpec中,我想测试以确保对象的状态为“挂起”,因此我在我的对象\u控制器\u规范中执行此操作:

post :create, :object => @attr # I'm using pre-defined attributes
p = Object.last
p.object_status_id.should eq(Factory(:object_status_pending).id)
RSpec测试失败,以下16是工厂对象的id: 预计16岁 一无所获 由于某些原因,它没有检索对象的值。\u status\u id。如果我在我的开发服务器中运行代码,数据库中的对象的对象\u status\u id设置正确,因此我知道代码通过了测试。我有很多这样的例子,我都搞不清楚


谢谢

这是因为对工厂女孩缺乏了解。我实际上并没有在测试数据库中创建对象,只是在fixture中