如果我使用jQuery,我应该进行跨浏览器测试吗?

时间:2013-06-22 09:19:39

标签: javascript testing cross-browser

我们是一个由开发人员构建javascript应用程序的小团队。

如果我们不使用jQuery,我们需要花费大量时间确保代码与浏览器兼容,并且我们将在我们支持的所有平台上运行单元测试。这非常耗时,并且会增加我们的工作流程,或者需要时间来设置。

但是,我们确实使用jQuery。我们是否真的需要进行所有跨浏览器测试?

如果我们已经使用了jQuery - 一个基本上消除了跨浏览器问题的库,我正在寻找支持和反对进行广泛的跨浏览器测试(即使用TestSwarm或类似的东西)的一些论据。

思想?

3 个答案:

答案 0 :(得分:2)

jQuery在所有主流浏览器上运行,但它总是取决于实现,任何事情都可能出错,所以在浏览器中测试它总是一个好习惯。

这样做会更安全。 99%的代码都能正常工作,但1%的代码仍然存在风险,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。

答案 2 :(得分:0)

您的测试范围有多广,完全取决于您的应用。这有点像“一根绳子多久了?”的问题。

我会说,特别是jQuery,我在IE 8及更早版本中遇到了错误,这通常是由于HTML无效,而在其他浏览器中没有出现过。

而且,正如@ kinakuta的评论指出的那样,jQuery并未涵盖所有浏览器JavaScript API,或者替换语言本身。我想你在你的应用程序中编写的每一个重要的JavaScript行都不太可能是jQuery。