如何从rspec测试中提出标准错误?

时间:2015-04-16 14:43:04

标签: ruby rspec rspec2

所以我有一个rspec测试,我试图让我的程序验证:

来自rspec测试的

代码片段:

context '#validate(test_tool)' do
   it { expect(test_tool.validate).to raise_error StandardError }
来自test_tool的

代码片段(test_tool是我编写的用于传递rspec测试的程序)在test_tool中有多种方法,但我只是提取了一个rspec测试正在寻找的方法:

def self.validate
     raise StandardError
end

我到处搜索了。无论我如何尝试提出此错误。我一直在收到错误。请参阅控制台输出的片段:

example at ./spec/training_site/spec_test.rb:56 (FAILED - 1)

Failures:

  1) MyClass #validate(test_tool) 
     Failure/Error: it { expect(MyClass.validate).to raise_error StandardError }
     StandardError:
       StandardError

第56行只是第一个代码段的第二行。

基本上,我正在寻找故障排除和/或如何实现这一目标的示例。

1 个答案:

答案 0 :(得分:4)

这是正确的规范。您应该使用{}(方括号),因为您正在等待它引发错误。您使用的简单括号用于值检查。

context '#validate(test_tool)' do
  it { expect{test_tool.validate}.to raise_error StandardError }