如何从 rspec 测试中提高标准误差?

How to raise standard error from a rspec test?

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

来自 rspec 测试的代码片段:

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

code snippet from 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 行只是第一个代码片段的第 2 行。

基本上,我正在寻找故障排除和/或有关如何完成此操作的示例。

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

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