我到处寻找但是找不到这段代码的错误。我有一个帮助器,它分配一个实例变量,我试图在一个帮助器规范中测试这个赋值,但方法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没有选择变量?