在RSpec辅助测试中指定返回nil

时间:2015-08-14 12:57:14

标签: ruby-on-rails rspec

我到处寻找但是找不到这段代码的错误。我有一个帮助器,它分配一个实例变量,我试图在一个帮助器规范中测试这个赋值,但方法assigns[:variable_name]总是返回nil。我正在使用RSpec 3。

这是帮手:

module ApplicationHelper
  def barra_aplicacoes
    @barra = {
      limite_links: MyGem.configuracao.limite_links_visiveis,
      incluir_deslogar: MyGem.configuracao.incluir_deslogar,
      aplicacoes: get_aplicacoes
    }

    render partial: 'layouts/my_gem/barra_aplicacoes'
  end
end

这是我正在尝试运行的帮助规范:

RSpec.describe ApplicationHelper, type: :helper do
  describe '#barra_aplicacoes' do
    it 'deve setar o hash de dados da barra' do
      allow(helper).to receive(:get_aplicacoes).and_return([])
      helper.barra_aplicacoes
      #binding.pry
      expect(helper.assigns[:barra]).to be_a(Hash)
      #expect(assigns[:barra]).to be_a(Hash) (both don't work)
    end
  end
end

测试失败,因为assigns[:barra]始终为零。我尝试使用pry进行调试,并且分配哈希(以及helper.assigns哈希)实际上没有我的@barra变量。我还对此方法进行了其他测试(比如检查它是否呈现部分),它们都可以正常工作。为什么RSpec没有选择变量?

0 个答案:

没有答案