ruby rspec中引发错误的单元测试用例

时间:2014-12-10 15:07:00

标签: ruby rspec

我有一个方法可以检查参数是否包含任何值,如果不是,它会引发将被挽救的错误,以便通知它并继续执行。

def check_value(options)
  if options[:id].blank?
    raise "An id must be provided"
  end
  options[:url] = generate_url_and_save()
  save_without_issue(options[:url])
rescue ex
  report_error(ex)
end

对于选项[:id]的场​​景,测试用例将变为空白。 我尝试了下面的代码但不确定它是否是正确的方法

context '#check_value' do
  it 'should raise error if id is blank' do
    expect{subject.check_value({:id=> ''}}.to raise_error
  end
end

1 个答案:

答案 0 :(得分:1)

是的,这是“正确的”。如果您想查看带有错误的消息,可以使用raise_error('An id must be provided')。有关详细信息,请参阅https://www.relishapp.com/rspec/rspec-expectations/v/2-8/docs/built-in-matchers/raise-error-matcher