如何写出可靠的js代码,当然是需要单元测试的,单元测试对js代码的意义:
- 检测出潜在的bug
- 快速反馈功能输出,验证代码是否达到预期
- 保证代码的重构安全
- 方便协作开发
被测试对象:程序中的最小测试单元函数或模块
测试代码:用来测试最小单元的代码
首先学习下不使用框架如何测试代码
测试对象
// 被测试对象
let add = (a,b)=>a+b
测试代码
// 测试代码
let expect = (res)=>{
return {
toBe:(actual)=>{
if(res !== actual){
throw new Error('期望值与预期值不符')
}
}
}
}
let test = (desc,fn)=>{try{fn()}catch(e){console.log(`${desc}没有通过`)}
调用测试方法
test("加法测试",()=>{expect(add(1,2)).toBe(4)})
结果:
以上就是但换测试的基本原理,实际应用中我们需要测试框架完成我们的测试,测试框架有很多选型,相对而言配置最少拿来即用的框架就是jest
jest单元测试
jest 是facebook推出的一款测试框架,集成了 Mocha,chai,jsdom,sinon等功能。
安装
新建工程jest,npm init
cnpm install -D jest
安装完成后通过 npm ls jest验证是否安装成功
如上图出现版本号则证明安装成功
新建js文件main.js
let add = (a,b)=> a+b;
moduel.exports = {add};
新建main.test.js文件
test('加法测试',()=>{
expect(add(1,2)).toBe(4);
})
修改packge.json文件
{
"name": "jest",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "jest"
},
"author": "gcvc",
"license": "ISC",
"devDependencies": {
"jest": "^24.9.0"
}
}
执行测试代码 npm run test
结果:
测试结果现实没有通过,我们再次将测试代码修改:
test('加法测试',()=>{
expect(add(1,2)).toBe(3);
})
执行 npm run test
结果: