我在测试以下内容时遇到问题。创建对象时,会分配“待定”状态。状态实际上是一个活动记录关联。所以看起来像这样
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 是 Factory 对象的 id): 预期 16 得到 nil 出于某种原因,它没有检索 object_status_id 的值。如果我在我的开发服务器中运行代码,则数据库中的对象的 object_status_id 设置正确,所以我知道代码通过了测试。我有多个我无法弄清楚的实例。
谢谢