《JavaScript忍者秘籍》——2.3 测试框架

简介: 应该注意的是,从头开始编写一个测试框架是很容易,如果要更好地理解一个测试框架是如何实现的,这是一个好办法。这是一个特别有趣的练习,因为在编写一个测试框架时,我们通常是要处理纯JavaScript,而无需过多担心跨浏览器的问题。

本节书摘来自异步社区《JavaScript忍者秘籍》一书中的第2章,第2.3节,作者:【美】John Resig(莱西格) , Bear Bibeault(贝比奥特)著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.3 测试框架

测试套件应该作为基本开发流程的一部分,所以应该选择一个非常适合自己代码风格和代码库的测试套件。一个JavaScript测试套件应该满足一个唯一需求:显示测试的结果,以便很容易地确定哪些测试通过的,哪些是失败的。测试框架可以帮助我们达到这一目标,除了创建测试并将其组织到测试套件中以外,不用再担心别的事情。

根据测试的需要,我们可以从JavaScript测试框架中找到很多功能。其中一些功能包括:

  • 能够模拟浏览器行为(单击按键等)。
  • 测试的交互式控制(暂停和恢复测试)。
  • 处理异步测试超时问题。
  • 能够过滤哪些会被执行的测试。

一项非正式的调查,试图统计人们在日常开发过程中使用哪种JavaScript测试框架,其结果非常具有启发性。图2.5描述的令人沮丧的事实是,很多人根本不测试。通常情况下,大家会很容易认为非测试人员的比例实际上是更高的。
screenshot
另一个从该结果得出的观点是,绝大多数的脚本编写者,在编写测试用例时都选择如下四个工具中的一个:JsUnit、QUnit、Selenium以及YUI Test。测试工具的前十大“赢家”,如图2.6所示。
screenshot
这是一个有趣的结果,其表明没有一个有绝对优势的测试框架。但更有趣的是有相对较少用户的一次性框架的数量,如图2.6所示。

应该注意的是,从头开始编写一个测试框架是很容易,如果要更好地理解一个测试框架是如何实现的,这是一个好办法。这是一个特别有趣的练习,因为在编写一个测试框架时,我们通常是要处理纯JavaScript,而无需过多担心跨浏览器的问题。除非我们想模拟浏览器事件,如果是这样(尽管我们将在第13章解决这个问题)祝你好运!

根据图2.6显示的结果,许多人得出同样的结论,并编写了大量的一次性框架以适应自己的特殊需要。虽然可以编写一个专有的单元测试框架,但很有可能我们想用的是预先构建的框架。

一般的JavaScript单元测试框架会提供一些基本组件:一个测试运行器、测试分组以及断言。还有一些测试框架提供了异步运行测试的功能。让我们简要看一些最受欢迎的单元测试框架。

2.3.1 QUnit
QUnit最初是用于测试jQuery的单元测试框架。它的发展已经超出其最初的目标,目前是一个独立的单元测试框架。QUnit主要是为单元测试提供一个简单的解决方案,提供最小但却易于使用的API。

QUnit的特点如下:

  • 简洁的API。
  • 支持异步测试。
  • 不限于jQuery或使用jQuery的代码。
  • 特别适合于回归测试。

2.3.2 YUI Test
YUI Test是Yahoo !构建并开发的测试框架,于2008年10月发布。为了配合YUI3的发布,2009年YUI Test被完全重写。YUITest提供了大量的特性和功能,以确保覆盖代码库所需要的任何单元测试用例。

YUI Test的特点如下:

  • 广泛和全面的单元测试功能。
  • 支持异步测试。
  • 良好的事件仿真。

2.3.3 JsUnit
JsUnit是流行的Java JUnit测试框架在JavaScript语言上的实现。尽管它仍然是最流行的JavaScript单元测试框架之一,但也是最古老的(无论是代码年龄还是代码质量)。该框架最近没有进行太多更新,所以要测试大家熟知的现代浏览器的代码,JsUnit可能不是最好的选择。
2.3.4 新出的单元测试框架
根据JUnit的主页信息,Pivotal Labs团队现在正专注于一个名为Jasmine的新测试工具。
接下来,我们要看一看如何创建测试套件。

相关文章
|
4月前
|
前端开发 JavaScript
快乐编程之旅:了解这20道JavaScript手写题助力提升开发内力
快乐编程之旅:了解这20道JavaScript手写题助力提升开发内力
|
3月前
|
人工智能 JavaScript 前端开发
我心目中的第一编程语言——JavaScript,你呢?
我心目中的第一编程语言——JavaScript,你呢?
15 0
|
3月前
|
存储 缓存 JavaScript
发掘JavaScript潜力:掌握高级技巧,成为JavaScript编程大师!
众所周知,JavaScript 是一种非常流行🔥的编程语言,它已经成为了网页开发的必备技能。但是,在我们从事JavaScript编程的时候,我们却没有完全发掘和利用它的全部潜力。在本文中,我们将分享一些高级的JavaScript技巧,希望帮助CSDN的小伙伴更好地理解和掌握JavaScript编程。
|
4月前
|
前端开发 JavaScript Java
适合初学者的 10 个JavaScript 代码整洁技巧
适合初学者的 10 个JavaScript 代码整洁技巧
|
JavaScript 前端开发 Java
Javascript 是最好的语言,不服来辩
看到这个标题相信很多人就要开始跟我争论了,PHP 才是最好的语言,那就请原谅下,你说是就是,我们来看看就知道了。
124 0
Javascript 是最好的语言,不服来辩
|
移动开发 小程序 JavaScript
看得我目瞪口呆的 JavaScript 代码技巧
看到一个让我开眼界的回答,分享给大家,以下是正文:
156 0
看得我目瞪口呆的 JavaScript 代码技巧
|
JavaScript 前端开发 Java
Python全栈 Web(前端三剑客之JavaScript 从小白鼠到武林盟主)
Python、WEB、前端、前端三剑客、JS、JavaScript、巴黎香榭
2738 0
|
JavaScript 前端开发 机器人
JavaScript 编程精解 中文第三版 七、项目:机器人
七、项目:机器人 原文:Project: A Robot 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 […] 置疑计算机能不能思考 […] 就相当于置疑潜艇能不能游泳。
1106 0
|
Web App开发 JavaScript 前端开发
【干货合集】让我们聊一聊如何用世界上最流行的脚本语言——JavaScript写出优美的代码
近年来,随着 HTML5 和 Node.js 的发展,JavaScript 在各个领域遍地开花,已经从“世界上最被误解的语言”变成了“世界上最流行的语言”。本文中也为大家精选了云栖社区上与JavaScript相关的诸多干货,希望能够对于正在学习JavaScript的你有所帮助!
17955 0
|
Web App开发 JSON JavaScript