在Ruby中回答rspec到raise_error

基本上我正在尝试回答一系列Rspec指令。 其中一条说明如下:

it "fails informatively when there's not enough values stacked away" do expect { calculator.plus }.to raise_error("calculator is empty") end 

所以我了解了raise_error以及如何回答它,是我创建某种错误/exception。

 def plus @array_nums.length >= 2 ? @array_nums << @array_nums.pop + @array_nums.pop : raise {"calculator is empty"} @value = @array_nums[-1] 

要清楚底部有一个结尾,但文本编辑器没有处理它。 所以我提出错误,我试图引发ArgumentError等等,但我不断从rspec得到这个响应:

 Failure/Error: expect { calculator.plus }.to raise_error("calculator is empty") expected Exception with "calculator is empty", got RuntimeError with backtrace: # ./lib/12_rpn_calculator.rb:16:in `plus' # ./spec/12_rpn_calculator_spec.rb:119:in `block (3 levels) in ' # ./spec/12_rpn_calculator_spec.rb:118:in `block (2 levels) in ' # ./spec/12_rpn_calculator_spec.rb:118:in `block (2 levels) in ' 

我尝试的任何其他引发的错误都不起作用,我正在努力找到正确的方向来接受这个。 也许我在寻找错误的地方? 任何帮助表示赞赏,谢谢!

试试这个:

  @array_nums.length >= 2 ? @array_nums << @array_nums.pop + @array_nums.pop : raise StandardError, 'calculator is empty'