《JavaScript忍者秘籍》基础知识

阅读忍者秘籍。

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

1.可重用性:测试结果应该是高度可再生的,测试不依赖于外部因素。 1.简单性:测试应该只专注于测试一件事。 1.独立性:测试用例应该独立执行。

构建测试的两种主要方法

1.解构型测试用例:在消弱代码隔离问题时进行创建,以消除任何不恰当的问题。 1.构建型测试用例:从一个大家熟知的良好精简场景开始,构建用例,直到能够重现 bug 为止。

例子:构建型测试用例

1.创建一个精简的测试用例时,可以从几个已经包含最小功能的 HTML 文件开始,这些不同的起始文件可以包含不同的功能。例如,一个用于 DOM 操作,一个用于 Ajax 测试,一个用于动画等等。下面是一个测试 DOM 操作的测试用例。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<script src="dist/jquery.js"></script>
<script>
    $(document).ready(function () {
        $("#test").append("test");
    });
</script>

<style>
    #test { width: 100px; height: 100px; background: red; }
</style>

<div id="test"></div>
</html>

1.使用干净的代码副本生成一个测试用例,我们使用 shell 脚本。

1
2
3
4
5
6
7
#!/bin/sh
# Check out a fresh copy of jQuery
git clone git://github.com/jquery/jquery.git $1
# Copy the dummy test case file in
cp $2.html $1/index.html
# Build a copy of the jQuery test suite
cd $1 && npm run build

1.将上述脚本保存为 gen.sh 文件,并使用命令 chmod +x gen.sh && gen.sh mytest dom 执行。

一些测试用例

有了测试用例之后,就可以使用一些测试套件/框架来反复运行这些测试。另一种生成测试用例的方式是:使用现有的工具,如 JS Bin 。使用了测试框架后,你唯一需要做的就是创建测试并将其组织到测试套件中。一些常用的测试框架: QUnit , YUI Test , JsUnitTestSwarm。测试套件应该作为开发流程的一部分,一个JS测试套件应该满足一个唯一需求:显示测试的结果。

一个JS断言的简单实现

1.简单的断言是很有用的,但是真正的发力是在测试上下文中将它们组合在一起形成测试组的时候.执行单元测试的时候,一个测试组可能代表一组断言,因为它们在我们的 API 或程序里关联的是一个单一的方法。

测试分组实现

1.异步测试需要的处理方式是过度设计,并且需要设计的比实际需要更复杂.处理异步需要一些简单的步骤。

1.将依赖相同异步操作的断言组合成一个统一的测试组。 1.每个测试组需要放在一个队列上,在先前其他的测试组完成运行后再运行。 1.每个测试组必须能够异步运行。

异步分组实现

updatedupdated2023-12-052023-12-05