Rails:在rpec测试中访问控制器实例变量

时间:2017-09-05 07:39:29

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

在Rspec控制器测试中,我想检查我正在测试的控制器中的实例变量的值。

例如,

控制器:

class ThingsController < ApplicationController
  def index
    @things = Thing.all
  end
end

规格:

RSpec.describe UsersController, type: :controller do
  describe 'GET #index' do 
    expect(@things).to_not be_nil
  end
end

如何在上面的示例中访问@things

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

expect(assigns(:things)).to_not be_nil

你更有可能想要这样的东西:

let(:thing) { ... }
...
expect(assigns(:things)).to eq([thing])