测试,作为软件工程的一项重要环节,用来保证项目的正确性,完整性,安全性和可靠性。
前端测试是前端工程化的重要环节,根据测试的粒度可以分为单元测试,功能测试(E2E测试),集成测试。
前端测试框架
单元测试
- Mocha
- Jasmine
- Jest
断言库
- chai
- Jest
- expect.js
- should.js
E2E
- webdriverio
- Nightwatch
- Testcafe
- protractor
- casperjs
- dalekjs http://dalekjs.com
集成测试
- Karma
代码覆盖率测试
- Istanbul
- blanketjs
- codecov.io(服务)
自动化测试
- CasperJS
- PhantomJS
- SlimerJS
单元测试
单元测试用于测试一个模块或接口是否达到预期结果,随着项目规模的增加,函数,方法,变量,模块都在递增,为了保证新的需求或修改不影响原有的结果,同时让程序自动检测结果,我们需要对这些单元制定衡量的标准,并且可以快速检验。
如何做单元测试?
很简单,一个待检验单元要么返回成功pass,要么失败fail,检验的对象应该是接口,方法或模块。
测试的任务包括:
1 模块接口测试;
2 模块局部数据结构测试;
3 模块边界条件测试;
4 模块中所有独立执行通路测试;
5 模块的各条错误处理通路测试。
举个例子:
src/divide.js
function divide (x, y) {return x / y;
}
module.exports = divide;
var divide = require('./src/divide.js');
var result = divide(4, 2);
if (result === 2) {alert('pass');
} else {alert('fail');
}
这里只是举个例子,当然实际的项目中我们不会用alert,而是用到一些测试框架,比如Mocha,Jest ,以mocha为例:
1、 首先安装mocha
npm i mocha -g
2、 编写测试脚本 test/divide.test.js