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中