2012-01-19 128 views
0

錯誤使用.T方法在Rails的模板,例如測試渲染

<%= (user.score).t(:context => 'foo') %> 

原因

undefined method `t' for 46:Fixnum 

的方法被稱爲上的數字錯誤。 現在的問題是如何能夠測試這種情況?在測試代​​碼應該存活的地方,所有的模板將在渲染之前進行測試?

回答

1

這取決於您選擇的測試框架。使用Rail自帶的Test :: Unit的東西,你的控制器和集成測試渲染視圖,所以應該捕獲這種錯誤。其他形式的集成測試,如黃瓜也應該拿起這樣的事情。

如果使用rspec的,那麼你可以寫查看規格:在單獨測試視圖渲染規格。

最後,如果你發現自己有很多邏輯的,你想測試你的觀點,你可能會更好過提取這種邏輯成爲一個輔助和編寫單元測試/規格爲幫手。

+0

是的,我正在使用Test :: Unit。並根據文檔,它應該捕獲控制器錯誤,但我不能捕獲這個錯誤既不assert_response:成功,也不assert_select'標題',「頁面標題!」..測試通過。 – Yulia

+0

然後有可能是其他東西(是錯誤的,但模板被呈現在所有?) - 如果視圖呈現在控制器測試引發異常,然後測試將失敗 –

+0

我的壞。錯誤被抓住了。謝謝! – Yulia

0

據我所知,你不測試模板本身。但是你可以測試例如與cucumber如果您得到您期望的視圖結果。這可能是某種「模板測試」。