在Rspec中编写测试用例来处理语法错误

时间:2013-10-19 07:40:48

标签: ruby-on-rails rspec rspec-rails

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

2 个答案:

答案 0 :(得分:1)

理论上,您可以将一段代码作为字符串传递给evalload一个包含语法错误的特定文件,并使用rescue Exception => e来拯救那些。

但我可以问为什么?

答案 1 :(得分:0)

像下面这样使用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