2013-06-22 44 views
2

我們是一個開發人員構建javascript應用程序的小團隊。如果我使用jQuery,我應該做跨瀏覽器測試嗎?

如果我們不使用jQuery,我們會想花大量的時間來確保該代碼是跨瀏覽器兼容,我們將在我們所支持的所有平臺上運行單元測試。這非常耗時,並且增加了我們的工作流程,或者需要時間來設置。

但是,我們使用jQuery。我們是否真的需要做所有的跨瀏覽器測試?

我正在尋找一些贊成和反對做廣泛的跨瀏覽器測試(即使用TestSwarm或類似的東西),如果我們已經使用jQuery - 基本上消除了跨瀏覽器問題的庫。

想法?

+3

jQuery將很多跨瀏覽器不一致的內容抽象出來,但仍然可以編寫在不同瀏覽器上表現不同的JavaScript。我仍然建議跨瀏覽器進行測試。使您的測試自動化並養成編寫單元測試的習慣。 – kinakuta

+0

這可能有助於http://stackoverflow.com/a/7799171/1862502 –

+0

也有閱讀http://dalelane.co.uk/blog/?p=2222 – mplungjan

回答

2

jQuery的運行在所有主要的瀏覽器,但它總是依賴於實施和任何地方都可能出問題,所以它始終是一個很好的做法,跨瀏覽器測試。

這樣做你會更安全。 99%的代碼將正常工作,但仍有1%的代碼存在風險,1%可能會導致嚴重錯誤。

1

但是,我們使用jQuery。我們是否真的需要做所有的跨瀏覽器測試?

我正在尋找一些論點和反對做廣泛的跨瀏覽器測試

  • 因爲jQuery可能你可能不知道的怪癖,除非你真的更新了他們的構建,錯誤和修復。

  • jQuery的可能沒有修補的所有分歧。

    據我所知,在舊版本的這種差異是因爲IE已經創建的元素時,不支持改變輸入的類型:

    //IE: 
    $('<input type="text"/>'); 
    
    //Other browsers: 
    $('<input/>',{ 
        type : 'text' 
    }); 
    
  • jQuery的不打補丁的一切。

    這個說法對於爲什麼map()patched而不是reduce()是成立的。 A bug report was created for this,但大多數響應者回答說reduce在內部是不需要的,因此它被省略了。

  • jQuery的,像其他軟件有缺陷,太

  • 因爲可能有一些較新的JS API,當他們不是你的團隊成員可能會考慮穩定。一個例子是querySelectorAll,它已經很好用了,在許多瀏覽器中都支持,但有怪癖which are different from what you'd expect

  • 僅僅因爲你使用一個偉大的CSS框架,並不意味着所有的佈局問題已經解決。你甚至還要進行UI測試,以確保一切看起來都一樣。 同樣的邏輯應該適用於所有語言,甚至JS。

0

您測試的程度完全取決於您的應用程序。這是一個「一段弦多久?」的問題。

我想說,特別是在jQuery中,我遇到了IE 8及更高版本中的錯誤,通常是由於HTML無效,而在其他瀏覽器中沒有出現。

而且,正如@ kinakuta的評論指出的那樣,jQuery並沒有涵蓋每個瀏覽器的JavaScript API,也沒有替換語言本身。我可以想象,你在應用程序中編寫的每一個重要的JavaScript代碼都不可能是jQuery。

相關問題