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

Dan*_*ito 7 ruby rspec ruby-on-rails

我的测试看起来像这样:

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!

到底是怎么回事??

AbM*_*AbM 7

您应该将期望包装在一个块中,{}而不是使用():

expect{
  helper.description_for_subscription(recurring_plan)
}.to raise_error(RuntimeError)
Run Code Online (Sandbox Code Playgroud)

此处查看" 期望错误"部分