我无法测试以下内容。创建对象时,将分配状态“待定”。状态实际上是一个活动的记录关联。所以它看起来像这样
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中我想测试以确保该对象的状态为pending,所以我在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是Factory对象的id): 预计16 没有了 由于某种原因,它没有检索object_status_id的值。如果我在我的dev服务器中运行代码,数据库中的对象已正确设置object_status_id,所以我知道代码通过了测试。我有多个这样的实例,我无法弄清楚。
由于
答案 0 :(得分:0)
这是由于对Factory_Girl缺乏了解。我实际上并没有在测试数据库中创建对象,只是在fixture中。