我正在使用Cucumber,Capybara和Capybara-webkit在我的Ruby on Rails應用程序中測試不同的場景。當頁面出現JavaScript錯誤時,如何在使用Capybara-Webkit的功能測試中失敗一步?
有沒有一種方法可以在場景運行時檢測頁面上的任何JavaScript錯誤,並且測試失敗?我們正在使用這些測試來確保我們不會在更改之間破壞功能(包括JavaScript),作爲我們自動化測試運行的一部分。
我可以看到測試輸出的失敗,但它不會失敗的測試:
http://127.0.0.1:54928/...|16|ReferenceError: Can't find variable: $
http://127.0.0.1:54928/...|16|ReferenceError: Can't find variable: $
...
謝謝!
更新:我找到的一種方法是嘗試執行一些JavaScript,只有在以前的錯誤沒有發生時纔可能執行。在這種情況下,我會得到這樣的錯誤:
Javascript failed to execute (Capybara::Driver::Webkit::WebkitInvalidResponseError)
./features/step_definitions/....rb:19:in `/^I should not see any JavaScript errors$/'
features/....feature:34:in `Then I should not see any JavaScript errors'
有沒有更好的方法?
謝謝你的答案,但我不認爲我明白...我正在尋找一種方式來自動故障的步驟,所以我們可以再探討,只有當它失敗。不得不打開每個頁面並檢查控制檯,從而破壞了擁有無頭水豚-webkit的目的。 – 2012-02-09 15:35:41