【问题标题】:Rails / RSpec: Using :assigns in an observer spec?Rails / RSpec:在观察者规范中使用:assigns?
【发布时间】:2016-04-10 22:54:01
【问题描述】:

我正在记录对模型的更改以在活动源中使用。我有一个观察者这样做(活动记​​录脏):

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

我收到此错误:RSpec::ExampleGroups::DerpObserver::BeforeUpdate:0x007fc6e24eb7f8 的未定义方法 `assigns'

如何在观察者规范中使用分配?或者,是否有另一种方法可以测试 @changes 是否已分配?

【问题讨论】:

    标签: ruby-on-rails rspec rspec-rails observers


    【解决方案1】:

    instance_variable_get 是我要找的。​​p>

    http://apidock.com/ruby/Object/instance_variable_get

    expect(@observer.instance_variable_get(:@changes)).to eq(derp.changes)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 2021-09-25
      • 2013-07-22
      • 2013-01-31
      • 1970-01-01
      • 1970-01-01
      • 2012-02-15
      相关资源
      最近更新 更多