程序逻辑
,可使用单元测试业务逻辑
,不能使用单元测试测试内容:测试求和函数javascript
测试工具:Node.js的
assert
模块,该模块具体用法详见Node.js的官方文档前端
hello.js
文件,输出一个简单的求和函数// hello.js
module.exports = function(...rest) {
var sum = 0;
for(let n of rest) {
sum += n;
}
return sum;
}
复制代码
test.js
文件,使用assert
模块对该函数进行测试:// test.js
const assert = require('assert');
const sum = require('./hello');
assert.strictEqual(sum(), 0);
assert.strictEqual(sum(1), 1);
assert.strictEqual(sum(1, 2), 3);
assert.strictEqual(sum(1, 2, 3), 6;
复制代码
只要有一项测试没经过,断言就会失败,抛出错误java
上述案例为咱们展现了如何实现一个简单的单元测试,可是有一个明显的缺陷就是:只要有一个
assert
报错,就会终止整个程序的执行,后面的测试也就没法测试了,这对于咱们的实际项目而言显然是不够的,为此,要实现自动化的前端测试,须要借助一些开源框架。架构
Mocha
Mocha
是基于Node.js的JavaScript测试框架,具备以下的一些特色:框架
- 兼容多种风格的断言库
- 测试用例可进行分组
- 同步兼异步的测试架构
- 提供多个生命周期钩子
Karma
karma
是测试框架的驱动器,它为测试提供了多种测试环境,可运行单元测试框架(例如mocha
)在这些环境中进行测试,并生成测试报告测试框架的驱动器 的理解:函数
- 若是只是使用
mocha
整个测试框架来进行开发测试,则每次开发完一个模块,就必须手动启动mocha
来进行测试,这就很是的麻烦- 使用
karma
,便可在开发时进行自动对新的代码进行测试,生成测试报告