2013-06-11 111 views
0

我正在使用rspec和capybara,並且想要測試響應於例如click_button的JSON響應。我明白我可以使用:js => true,但我想解析我得到的JSON。我看到,我可以這樣做:如何使用rspec和capybara與JavaScript JSON響應進行交互

get '/your/path', format: 'js' 

有沒有辦法做這樣的事情:

click_button('Save', format: 'js') 
::JSON.parse(response).... 

THX

回答

3

像硒瀏覽器elumation庫的目的是接近真正的瀏覽器,並允許模擬真實用戶的行爲。真正的用戶無法閱讀對AJAX操作的響應,所以瀏覽器仿真庫不具備這種能力。 Also it will be quiet hard for Selenium guys to implement it.

有,你有幾種可能:

  • 寫這個測試使用的http client libraries之一。但是你不能真正地測試端到端的東西,這涉及到大量的Javascript和AJAX使用這種方法
  • AJAX動作可能會改變應用程序的DOM中的某些東西。您可以使用Capybara輕鬆書寫支票。
  • 但是,如果真的想要端到端測試您的應用程序,並且希望直接檢查對AJAX操作的HTTP響應,則應該使用代理來記錄所有響應。然後你通過這些迴應進行搜索。硒維護者建議使用Browsermob proxy to do something like this。由Selenium的Ruby綁定的維護者編寫的Here are Ruby bindings for it
相關問題