Ruby on rails 在Rspec中编写测试用例以处理语法错误

Ruby on rails 在Rspec中编写测试用例以处理语法错误,ruby-on-rails,rspec,rspec-rails,Ruby On Rails,Rspec,Rspec Rails,我是Rspec的新手。我正在为控制器编写规范。是否有可能用spec捕获代码中的语法错误,例如,我想用Rspec编写一个案例来处理控制器中的语法错误。提前感谢。理论上,您可以将一段代码作为字符串传递给eval或load包含语法错误的特定文件,并解救那些出现解救异常=>e 但我可以问一下为什么吗?像下面一样使用eval describe "Backreferences to Non-Existent Capturing Groups" do describe '/(a)b\1/' do

我是Rspec的新手。我正在为控制器编写规范。是否有可能用spec捕获代码中的语法错误,例如,我想用Rspec编写一个案例来处理控制器中的语法错误。提前感谢。

理论上,您可以将一段代码作为字符串传递给
eval
load
包含语法错误的特定文件,并解救那些出现
解救异常=>e

但我可以问一下为什么吗?

像下面一样使用eval

describe "Backreferences to Non-Existent Capturing Groups" do
  describe '/(a)b\1/' do
    it { expect { eval '"aba".match(/(a)\1/)' }.to_not raise_error }
  end

  describe '/(a)b\2/' do
    it { expect { eval '"aba".match(/(a)\2/)' }.to raise_error(SyntaxError) }
  end
end
如果出现语法错误,Ruby(以及RSpec)将无法运行代码,并且退出代码将为非零。这是发现这个案件的另一种方式。