我正在尝试测试一个调用私有函数的公共函数。这是公共职能的简化版本:
def gera_documento
set_layout #the private method
return documento.to_pdf
end
规范专门测试gera_documento
,而非set_layout
:
it "retorna um PDF" do
expect(Gerador.new(@doc).gera_documento.render[0,4]).to eq('%PDF')
end
测试失败,出现以下错误:
Failure/Error: set_layout
NoMethodError:
private method `set_layout' called for #<Gerador:0x00564d2bd5e868>
如果我公开set_layout
,则测试通过。发生了什么,我该如何解决这个问题?
答案 0 :(得分:0)
使用实例eval,如
@your_controller = SpqwerController.new
@your_controller.instance_eval{ set_layout }