2009-06-28 65 views
1

在Rails應用程序中,我有一個失敗的Test :: Unit功能測試,但控制檯上的輸出並沒有告訴我很多。如何在運行Test :: Unit測試時看到實際發生的情況?

如何查看請求,響應,閃光燈,會話,變量集等等?

是否有失敗的測試使用p @request等醜陋的東西像...

rake test specific_test_file --verbose 

回答

3

的建議,您可以添加看跌語句來測試的情況下,或將Rails.logger.debug()調用添加到您的應用程序代碼中,並觀察您的log/development.log以跟蹤發生的事情。

1

,但它可以工作

2

在您的測試中,您可以訪問一系列可供用戶調試測試的資源。

p @request 
p @response 
p @controller 
p flash 
p cookie 
p session 

另外請記住,你的行動應儘可能不可能性一樣簡單,所有的具體行動執行應該由單一的單元測試進行測試。功能測試應該保留給整個行動執行。

這是什麼意思在實踐中?如果某些行爲在你的行爲中不起作用,並且你的行爲調用了3種模型方法,那麼你應該能夠很容易地從單元測試中分離出問題。如果一個(或多個)單元測試失敗,那麼你知道哪個方法是有罪的。 如果所有的單元測試都通過了,那麼問題就是這個動作本身,但由於您已經單獨測試了這些方法,所以它應該很容易調試。

0

的回答另外一個問題suggested

rake test TESTOPTS=-v 
0

的光滑的方法是使用prypry-nav寶石。一定要將它們包含在你的測試寶石組中。我也在開發組中使用它們。關於pry和pry nav的好處是你可以通過控制檯瀏覽你的代碼,所以你不僅可以在代碼執行時看到代碼,還可以在測試過程中輸入控制檯命令。

您只需在您想要觸發控制檯的代碼中輸入binding.pry。然後使用'step'命令,可以在執行代碼時逐行移動代碼。

相關問題