我将更改记录到要在活动供稿中使用的模型中。我有一个观察者这样做(activerecord脏):
def before_update(derp)
@changes = derp.changes
end
这将此功能从控制器中抽象出来。我想用rspec测试一下,所以我有这个:
it "assigns derp.changes to @changes" do
derp.attribute = 5
@observer.before_update(derp)
expect(assigns(:changes)).to eq(derp.changes)
end
我收到此错误:未定义的方法`分配' for RSpec :: ExampleGroups :: DerpObserver :: BeforeUpdate:0x007fc6e24eb7f8
如何在观察者规范中使用赋值?或者,有没有其他方法可以测试@changes是否已分配?
答案 0 :(得分:0)
instance_variable_get就是我要找的。 p>
http://apidock.com/ruby/Object/instance_variable_get
expect(@observer.instance_variable_get(:@changes)).to eq(derp.changes)