《JavaScript忍者秘籍》——2.2 测试用例生成

简介: 解构型测试用例(deconstructive test cases)——解构型测试用例,在消弱代码隔离问题时进行创建,以消除任何不恰当的问题。这有助于我们实现之前列出的三个特征。我们可能从一个完整的网站开始练习,但在消除额外的HTML标记、CSS和JavaScript之后,我们将看到一个能重现该问题的小用例场景。

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

2.2 测试用例生成

Robert Frost曾写道:篱笆筑得牢,邻居处得好,Web应用程序也是如此,不管是何种编程准则,好的测试铸就好的代码。注意对这个“好”字的强调。如果测试用例的构建很差,它很有可能只是大量的测试套件,不会真正帮助我们提高代码质量。

优秀的测试用例具有三个重要特征。

  • 可重用性(repeatability)——测试结果应该是高度可再生的。多次运行测试应该产生相同的结果。如果测试结果是不确定的,那我们又如何知道哪些结果是有效的,哪些又是无效的呢?此外,可重现性可以确保我们的测试不依赖于外部因素(诸如网络或CPU负载)。
  • 简单性(simplicity)——测试应该只专注于测试一件事。在不影响测试用例目的情况下,我们应该尽可能消除过多的HTML标记、CSS或JavaScript。我们删除得越多,测试用例只受特定代码影响的可能性就越大。
  • 独立性(independence)——测试用例应该独立执行。我们必须避免一个测试结果依赖于另外一个测试结果。把测试分解成尽可能小的单元,这将帮助我们确定在错误发生时的确切代码位置。

有很多方法可以用于构建测试,有两种主要的方法分别是解构型测试和构建型测试:

  • 解构型测试用例(deconstructive test cases)——解构型测试用例,在消弱代码隔离问题时进行创建,以消除任何不恰当的问题。这有助于我们实现之前列出的三个特征。我们可能从一个完整的网站开始练习,但在消除额外的HTML标记、CSS和JavaScript之后,我们将看到一个能重现该问题的小用例场景。
  • 构建型测试用例(constructive test cases)——构建型测试用例,我们从一个大家熟知的良好精简场景开始,构建用例,直到我们能够重现bug为止。为了使用这种风格的测试,我们需要几个用于构建测试的简单测试文件,以及用于生成这些新测试的干净代码副本。

让我们来看一个构建型测试的例子。

创建一个精简的测试用例时,我们可以从几个已经包含最小功能的HTML文件开始。甚至不同的起始文件可以包含不同的功能,例如,一个文件用于DOM操作,一个文件用于Ajax测试,另外一个则用于动画,等等。

举个例子,如下代码清单展示了一个简单的用于测试jQuery的DOM测试用例。

代码清单2.3 一个精简的用于jQuery的DOM测试用例
screenshot
要使用干净的代码副本生成一个测试用例,我们可以使用shell脚本签出jQuery库,复制测试用例,并构建测试套件,如下所示:
screenshot
将上述脚本保存为一个gen.sh的文件,并使用如下命令行执行:
screenshot
该命令将可以让我们从Git库的dom.html文件中获取DOM测试用例。

另外一种方式是使用一个预先构建的用于创建测试用例的服务。其中一个叫JS Bin,它是一个用于构建测试的简单工具,可以生成一个唯一的url地址——甚至可以引用一些最受欢迎的JavaScript库的副本。JS Bin的示例如图2.4所示。
screenshot
一旦具备了创建测试用例所需的工具和知识以后,我们就可以为这些测试创建一些测试套件,从而使得反复运行这些测试变得更加容易。让我们来研究一下。

相关文章
|
2月前
|
JavaScript 前端开发 数据格式
期末测试——JavaScript方式练习题
期末测试——JavaScript方式练习题
52 0
|
5月前
|
JavaScript 前端开发 测试技术
JavaScript测试和调试工具:学习使用测试框架(如Jasmine、Mocha)对JavaScript代码进行单元测试
JavaScript测试和调试工具:学习使用测试框架(如Jasmine、Mocha)对JavaScript代码进行单元测试
|
10月前
|
JavaScript 前端开发 NoSQL
【Node.js实战】一文带你开发博客项目之初识Koa2(koa2安装使用、搭建开发环境、测试路由)
【Node.js实战】一文带你开发博客项目之初识Koa2(koa2安装使用、搭建开发环境、测试路由)
319 0
|
10月前
|
JavaScript 前端开发 BI
JavaScript —— JSchallenger Objects 对象练习(测试一下你的 JS 对象基础)【专题三】
JavaScript —— JSchallenger Objects 对象练习(测试一下你的 JS 对象基础)【专题三】
|
10月前
|
JavaScript 前端开发 网络架构
JavaScript —— JSchallenger Arrays 数组练习(测试一下你的 JS 数组基础)【专题二】
JavaScript —— JSchallenger Arrays 数组练习(测试一下你的 JS 数组基础)【专题二】
|
10月前
|
JavaScript 前端开发 Java
JavaScript —— JSchallenger Basics 基础练习(测试一下你的 JS 基础)【专题一】
JavaScript —— JSchallenger Basics 基础练习(测试一下你的 JS 基础)【专题一】
|
CDN
Vue3.js快速开发CDN引入测试模板
Vue3.js快速开发CDN引入测试模板
363 0
|
前端开发
前端知识案例54-javascript基础语法-数组测试
前端知识案例54-javascript基础语法-数组测试
38 0
前端知识案例54-javascript基础语法-数组测试
|
SQL JavaScript 前端开发
如何用 JavaScript 编写你的第一个单元测试
测试代码是确保代码稳定的第一步。能做到这一点的最佳方法之一就是使用单元测试....
如何用 JavaScript 编写你的第一个单元测试
|
JavaScript 前端开发 测试技术
使用 Mocha 进行 JavaScript 代码自动化测试
使用 Mocha 进行 JavaScript 代码自动化测试
101 0
使用 Mocha 进行 JavaScript 代码自动化测试