0

我在测试以下内容时遇到问题。创建对象时,会分配状态“待定”。该状态实际上是活跃的记录关联。所以它看起来像这样RSpec - 测试是否设置了活动记录关联

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的我想测试,以确保对象具有挂起的,所以我做这个的状态在我objects_controller_spec:

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 了无 出于某种原因,它不检索object_status_id的值。如果我运行我的开发服务器中的代码,数据库中的对象具有正确设置的object_status_id,所以我知道代码通过了测试。我有这个我无法弄清楚的多个实例。

谢谢

回答

0

这是由于对Factory_Girl缺乏了解。我实际上并没有在测试数据库中创建对象,只能在灯具中创建。