2011-04-05 35 views
6

我們有一個Web應用程序,可以在UI中廣泛使用AJAXy Javascript。我們已經使用Shoulda和Webrat幾乎完成了後端的代碼覆蓋,並且希望擴展我們的測試套件以包括通過Javascript UI進行的完整集成測試。在Rails應用程序中爲Javascript重度UI進行集成測試的最佳方式是什麼?

我們嘗試了硒,但發現它易碎和氣質。有更可靠的選擇嗎?

UPDATE

對於那些仍在檢查了這一點,我們最終通過Xvfb那麼我們可以在屏幕上運行的Firefox。允許我們在無頭Jenkins CI服務器上運行測試。我們仍然需要在本地偶爾運行測試來進行調試,但它運行得非常好。

回答

1

嗯我會給水豚一看,它可以使用硒-webdriver(不要混淆硒RC,他們是不同的)的JavaScript測試。我沒有發現它與Webrat相比非常脆弱......它似乎相當一致。

正如Chris Rueber所說,實際上並沒有任何支持JS的無頭DOM解釋器 - 現在它爲您的自動化啓動一個Web瀏覽器或在JavaScript本身編寫單元測試(這不是真正的集成測試)。

當你有很多selenium-webdriver支持的測試時,他們可能需要一段時間才能運行,但它肯定比沒有測試更好。

+0

水豚與硒似乎是最好的選擇。 – Joshua 2011-04-12 17:53:36

2

這是我一直在摔跤一段時間,因爲我正在與ExtJS(一個非常強大的瀏覽器的JavaScript UI生成器)和Rails做一些工作。

經過研究了不少不同的選擇。我仍然沒有找到一個完美的解決方案。理想情況下,我將能夠無頭奔跑並報告輸出。不幸的是,似乎沒有任何模擬器可以無縫運行帶有完整DOM支持的JavaScript(至少,我沒有發現任何選項)。所以,這意味着您必須在真正的解釋器(如瀏覽器)中運行全功能的JavaScript代碼。使用Selenium的Webrat工作得非常好,假設您願意處理嘗試正確地向UI發送請求的痛苦。如果您正在實施它自己的JavaScript,那可能會更容易一些。但是當涉及到一個你無法控制的第三方UI庫時,它肯定會得到,我們可以說它很有趣。

可能不是最有幫助的迴應,但這是我的發現到現在爲止!

+0

好信息。我們也使用ExtJS ...匹配到目前爲止我所發現的。 – Joshua 2011-04-06 00:09:05

+0

對於ExtJS UI測試,請嘗試[RIATest](http://www.cogitek.com/riatest/features/technologies/extjs.html)。 – 2012-09-12 13:53:31

3

一個JavaScript的大師,我的工作最近指出PhantomJS用於測試一個有趣的工具我們的JavaScript重型Web應用程序。我們還沒有嘗試過,但對於DOM測試來說,無頭Webkit的想法聽起來很有希望。

1

查看gem jasminerice來測試你的js邏輯。

https://github.com/bradphelan/jasminerice

的集成測試,我會建議使用rspec的水豚與驗收測試。區分請求規格和驗收規格! 另一種可能是使用蘿蔔作爲黃瓜的替代品。

https://github.com/jnicklas/turnip

加快您的測試試驗無頭。您可以使用capybara-webkit(取決於qt)或poltergeist(取決於phantomjs)。 都很容易設置。我更喜歡poltergeist。

+2

https://github.com/thoughtbot/capybara-webkit https://github.com/jonleighton/poltergeist – 2012-10-26 09:38:35

相關問題