
准备初始化项目并生成package.json 执行命令npm init -y安装Jest :局部安装项目内使用npm install --save-dev jest全局安装任意位置可直接调用npm install --global jestJest 测试简单使用文件addToArray.jsfunctionaddToArray(arr,...args){arr.push(...args);}module.exportsaddToArray;addToArray.test.jsconst addToArrayrequire(./addToArray);test(添加 4,5,6 到数组 [1, 2, 3] 中,(){const arr[1,2,3];addToArray(arr,4,5,6);expect(arr).toEqual([1,2,3,4,5,6]);});map.jsfunctionmap(arr, cb){returnarr.map(cb);}module.exportsmap;map.test.jsconst maprequire(./map);describe(测试 map 回调函数执行情况,(){test(map [1, 2, 3]回调函数执行 3 次,(){const mockFnjest.fn((x)x *2);map([1,2,3], mockFn);expect(mockFn.mock.calls.length).toBe(3);});test(map [1, 2, 3]回调函数返回 2, 4, 6,(){const mockFnjest.fn((x)x *2);map([1,2,3], mockFn);expect(mockFn.mock.results[0].value).toBe(2);expect(mockFn.mock.results[1].value).toBe(4);expect(mockFn.mock.results[2].value).toBe(6);});});sum.jsfunctionsum(a, b){returna b;}module.exportssum;sum.test.jsconstsumrequire(./sum);test(1 2 3,(){expect(12).toBe(3);//把sum 函数改成表达式可以查看func 覆盖率66.66%});执行命令package.json使用jestscripts:{test:jest},执行 npm run jest使用jest 生成文件scripts:{test:jest --coverage --verbose},执行 npm run jest启动服务并访问http://127.0.0.1:5500/coverage/lcov-report/index.htmlJest 参数直接执行 jest自动扫描项目中所有 .test.js、.spec.js 后缀的测试文件批量运行全部用例jest 文件名/路径仅运行指定路径下的测试文件精准定位单测jest -o仅运行与当前 Git 未提交变更相关的测试文件大幅提升开发阶段测试效率jest --watch进入监听模式文件修改后自动重跑对应测试用例jest --coverage自动生成代码覆盖率报告直观展示未被测试覆盖的代码行jest -t 测试用例名称仅运行名称匹配的特定测试用例快速调试单个功能点