Rspec raise_error 测试失败,即使该方法引发错误

问题描述 投票:0回答:1

我的测试如下:

it 'does return an error when passing a non-subscription or trial membership' do
    expect(helper.description_for_subscription(recurring_plan)).to raise_error(RuntimeError)
end

我的方法返回这个:

fail 'Unknown subscription model type!'

然而 Rspec 返回此失败消息:

Failure/Error: expect(helper.description_for_subscription(recurring_plan)).to raise_error(RuntimeError)
     RuntimeError:
       Unknown subscription model type!

这是怎么回事??

ruby-on-rails ruby rspec
1个回答
9
投票

您应该将期望包装在一个块中,使用

{}
而不是
()
:

expect{
  helper.description_for_subscription(recurring_plan)
}.to raise_error(RuntimeError)

检查预期错误部分此处

© www.soinside.com 2019 - 2024. All rights reserved.