Ruby on rails Rails/RSpec:使用:在观察者规范中指定?

Ruby on rails Rails/RSpec:使用:在观察者规范中指定?,ruby-on-rails,rspec,rspec-rails,observers,Ruby On Rails,Rspec,Rspec Rails,Observers,我正在记录要在活动提要中使用的模型更改。我有一个观察员可以这样做(activerecord dirty): 这将此功能从控制器中抽象出来。我想用rspec测试一下,所以我有: it "assigns derp.changes to @changes" do derp.attribute = 5 @observer.before_update(derp) expect(assigns(:changes)).to eq(derp.changes) end 我收到以下错误:RSpec::

我正在记录要在活动提要中使用的模型更改。我有一个观察员可以这样做(activerecord dirty):

这将此功能从控制器中抽象出来。我想用rspec测试一下,所以我有:

it "assigns derp.changes to @changes" do
  derp.attribute = 5
  @observer.before_update(derp)
  expect(assigns(:changes)).to eq(derp.changes)
end
我收到以下错误:RSpec::ExampleGroups::DerpObserver::BeforeUpdate:0x007fc6e24eb7f8的未定义方法“assigns”


如何在观察者规范中使用赋值?或者,是否有其他方法可以测试@changes-get-assigned?

instance\u variable\u-get是我想要的

it "assigns derp.changes to @changes" do
  derp.attribute = 5
  @observer.before_update(derp)
  expect(assigns(:changes)).to eq(derp.changes)
end
expect(@observer.instance_variable_get(:@changes)).to eq(derp.changes)