一、断言
在node中可以通过 var assert = require('assert'); 方式引入assert模块,其主要检测方法如下:
-
ok():判断结果是否为真;
-
equal():判断实际值与期望值是否相等;
-
notEqual():判断实际值与期望值是否不相等;
-
deepEqual():判断实际值与期望值是否深度相等(对象或数组的元素是否相等);
-
notDeepEqual():判断实际值与期望值是否不深度相等;
-
strictEqual():判断实际值与期望值是否严格相等(相当于===);
-
notStrictEqual():判断实际值与期望值是否不严格相等(相当于!==);
-
throws():判断代码块是否拋出异常;
-
doesNotThrow():判断代码块是否没有拋出异常;
-
ifError():判断实际值是否为一个假值(null、undefined、0、''、false),如果实际值为真值,将会拋出异常。
二、测试框架
以mocha,安装命令如下:
npm install mocha -g
查看报告格式:
mocha --reporters
生成报告:
mocha -R <reporter>
三、测试代码的文件组织
包规范中定义了测试代码存在于test目录中,而模块代码存在于lib目录下,想运行单元测试,别忘记在package.json中添加依赖关系。
四、测试用例
对主要功能的测试方法至少具备:
- 正向测试;
- 反向测试;
- 异步测试;
- 超时测试;
五、测试覆盖率
本例通过jscover模块来检测每一行代码是否被执行,安装代码:
npm install jscover -g
六、mock
通过伪造被调用方来测试上层代码的健壮性;