2015-10-28 35 views
1

我想比較期望的路徑和當前路徑,以證明測試是否通過Cabypara爲什麼不能調用#assert_current_path?

我發現方法Capybara :: SessionMatchers#assert_current_path。我想這種方法可以滿足我的要求。

但是,當我寫道:

page.assert_current_path() 

在我的測試中,錯誤顯示:no #assert_current_path method

我見過的Capybara::Session包括了Capybara::SessionMatchers。我很困惑爲什麼我不能撥打#assert_current_path方法。 水豚是否具有比較當前路徑和預期路徑的功能?因爲使用頁面內容來證明結果對我來說並不穩定。

在此先感謝!

回答

-1

試試這個

uri = URI.parse(current_url) 

,如果你需要檢查的其他PARAMS

"#{uri.path}?#{uri.query}".should == your_path(:your_params => 'your_value') 
+1

這立即比較了異步路徑更改(由JS等觸發)的問題 - 使用assert_current_path/have_current_path利用Capybaras的等待行爲 –

1

確保您正在運行豚2.5+ - 不加入assert_current_path匹配,直到2.5.0

page.assert_current_path('/expected/path') 
+0

這是正確的!該方法可以在我更新寶石版本後調用。謝謝,湯姆 –

相關問題