Rspec:测试未处理的异常

时间:2018-10-18 07:31:53

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

在我的公共方法#recalculate中,调用私有method1。此方法抛出异常“ StandardError”。我想测试这种情况,但是出现错误。

注意:我不想处理异常。

def recalculate
  method_1
end

private
def method_1
    ## do some calculation
    raise StandardError.new("Test")
end

Rspec测试用例:

  it "Test" do
    expect { @product.recalculate.recalculate }.to raise_error(StandardError)
    @product.recalculate
  end

1) Product.Test 
  Failure/Error: @product.recalculate
   StandardError:
     Test
   (required)>'

在1.39秒内完成 1例,1例失败

1 个答案:

答案 0 :(得分:0)

根据您的示例,第二行@product.recalculate引发了实际的异常,因此引发了错误。假设recalculate对象中定义了@product方法,这足以测试它。

it "Test" do
  expect { @product.recalculate }.to raise_error(StandardError)
end