簡體   English   中英

一頁應用程序的javascript集成測試

[英]javascript integration testing for one page applications

我目前正在開發一個單頁javascript應用程序,使用服務器端的Sinatra Ruby和客戶端的Backbone.js,jQuery,jQuery UI。 應用程序的主要目的是允許客戶查看/編輯不同類型的項目,每個項目視圖是一種或多或少復雜的形式。

為了確保一切正常,我打算做:

  • 使用QUnit進行單一測試
  • 功能/集成測試

在這種情況下,您建議使用哪些框架/工具進行集成測試? 我從Selenium開始,但我不太喜歡它。 我剛開始看看PhantomJS和CasperJS,他們看起來非常適合瀏覽,點擊鏈接等基本內容......

你的建議是什么?

你沒有說你對Selenium不喜歡什么,但我猜你對JavaScript很有信心,所以我的建議是使用CasperJS作為主要工具。 它適用於單頁Web應用程序,並附帶自己的測試工具。 當使用嵌套的wait子句時,代碼有時會有點復雜; 通過確保你不會在每次測試中嘗試做太多來解決這個問題,然后如果仍然很復雜,那就重構一下。 並且不要忘記測試設計:如果您的選擇器非常復雜,請考慮在其周圍添加<span id="xxxx">...</span> ,這樣您的測試就可以直接進行測試!

您可以將CasperJS與PhantomJSSlimerJS一起使用 我目前的偏好是SlimerJS,如下:

  • PhantomJS 1.x卡在舊的WebKit(相當於Safari 5.1和Chrome 13)上,因此測試更多現代功能令人沮喪。
  • SlimerJS既可以使用Gecko引擎,也可以直接使用已安裝的Firefox版本。 這允許您使用額外的插件,安全證書等配置Firefox配置文件。
  • SlimerJS是用JavaScript編寫的,如果你有需要,更容易破解。

一旦PhantomJS 2.0問世(大約在2013年底,希望如此),或者如果您的網站不依賴於任何最近的HTML5 API,您可以運行兩次CasperJS,以獲得雙重覆蓋。 (順便說一句,PhantomJS自然是無頭的; SlimerJS需要使用Xvfb ,它只是Linux或Mac。)

Selenium為您提供的額外功能是您可以控制其他瀏覽器,特別是IE。 (當然對於IE來說,你需要運行Windows機器。)Selenium,像SlimerJS一樣,需要Xvfb無頭(再次,不包括Windows)。 (順便說一下,受支持的瀏覽器上的Selenium文檔還沒有多年更新,但我假設每個瀏覽器的更高版本至少有相同的支持。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM