2012-08-28 28 views
5

我目前正在開發一個使用服務器端的Sinatra Ruby和Backbone.js,jQuery,客戶端的jQuery UI的JavaScript頁面應用程序。 應用程序的主要目的是讓客戶查看/編輯不同類型的項目,每個項目視圖是一個或多或少複雜的形式。對一個頁面應用程序的JavaScript集成測試

要確保一切運行正確,我打算做的事:

  • 使用QUnit
  • 功能/集成測試

框架/工具,你的建議進行集成測試什麼統一測試這個案例 ?我從Selenium開始,但我不太喜歡它。我剛開始看PhantomJS和CasperJS,他們似乎相當不錯的基本東西,如導航,點擊鏈接,...

你的建議是什麼?

回答

1

你沒有說你對Selenium不喜歡,但我猜你對JavaScript有信心,所以我的建議是使用CasperJS作爲主要工具。它可以很好地處理單頁網絡應用程序,並附帶自己的測試工具。當使用嵌套的wait子句時,代碼有時可能會有些複雜;通過確保你不會在每次測試中做得太多,然後如果仍然複雜,重構來處理這個問題。不要忘記設計爲了測試:如果你的選擇器非常複雜,考慮在它周圍增加一個<span id="xxxx">...</span>,所以你的測試可以直接進行!

您可以同時使用CasperJS和PhantomJSSlimerJS。我的選擇是對SlimerJS目前,如:

  • PhantomJS 1.x的是停留在一箇舊的WebKit(相當於5.1的Safari和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 docs on supported browsers的年齡沒有更新,但我認爲每個瀏覽器的後續版本至少支持相同的支持)

+0

對Selenium的第一點是它的速度。它非常緩慢。 – user337620

+0

@ user337620我的Selenium腳本受網絡訪問控制,所以我從來沒有覺得它們很慢,除了啓動。我剛剛意識到你的問題是去年八月,而不是今年!你最終選擇了什麼,你對此感到滿意嗎? –

+0

我用PhantomJS使用CasperJS。我也會看看SlimerJS。 – user337620

相關問題