2013-10-19 51 views
0

我是Rspec的新手。我正在爲控制器寫一個規範。是否有可能在規範中捕獲代碼中的語法錯誤,即我想寫一個用Rspec處理控制器語法錯誤的例子。提前致謝。在Rspec中編寫測試用例來處理語法錯誤

+0

如果您有語法錯誤,並且退出代碼將不爲零,則Ruby(以及RS​​pec)將無法運行您的代碼。這是找到這種情況的另一種方式。 – Shepmaster

回答

1

在理論上,你可以一段代碼作爲字符串傳遞給evalload包含語法錯誤特定文件和救援那些rescue Exception => e

但我可以問爲什麼?

+0

+1問爲什麼 - 這沒有什麼意義。 – sevenseacat

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 
相關問題