rspec测试,如何在我的情况下获取id?
我的控制器有一个rsepc测试,在我的测试中,我有以下代码片段:
... params= {SOME PARAMETERS} post :create, params
上面的代码在我的控制器中测试create方法, create方法创建一个实例对象并将其保存到数据库中。
现在的问题是如何在数据库中获取创建的实例对象的id ?
看来(我不确定)我需要查询测试数据库中的这个对象,如何查询? (PS:我知道有Factory可以用来创建对象实例,但这是一个测试控制器,使用Factory会松开测试控制器的创建方法的目的。所以,请不要建议我使用Factory )
我想知道如何根据我的代码获取我创建的对象实例的ID? 谢谢:)
如果您在控制器中为对象分配类似的内容
@object = Object.new(params[:object]
那么它将使用assigns方法可用,因此您可以执行以下操作:
assigns[:object].id
如果成功保存,它将返回id。
– 编辑 –
使用RSpec 2它似乎是一个方法调用,所以你提供这样的属性
assigns(:object)
而不是旧的类似哈希的行为