Jest实践指南
原文地址:Jest实践指南
创建项目
React18版本冲突问题
js
npm i -D jest@27.5.1
npx jest --init // 初始化jest.config.js解决jest默认不支持import的问题
js
npm install --save-dev babel-jest @babel/core @babel/preset-env babel-plugin-transform-es2015-modules-commonjs目录结构
js
├── jest.config.js
├── package-lock.json
├── package.json
├── src
│ └── utils
│ └── sum.js
└── tests
└── utils
└── sum.test.js第一个测试文件
添加一个工具函数文件 src/utils/sum.js 作为我们第一个业务文件:
js
// src/utils/sum.js
const sum = (a, b) => {
return a + b;
}
export default sum;添加我们项目的第一个测试用例 tests/utils/sum.test.js:
js
// tests/utils/sum.test.js
import sum from '../../src/utils/sum';
describe('sum', () => {
it('可以做加法', () => {
expect(sum(1, 1)).toEqual(2);
});
})启动测试:
js
npm run test
npm run test <文件的相对路径> // 运行某个文件覆盖率报告
上面终端里展示的就是覆盖率情况,只不过以终端的形式展示。现在我们打开根目录下的 coverage 目录,会发现生成很多覆盖率文件:
js
├── clover.xml # Clover XML 格式的覆盖率报告
├── coverage-final.json # JSON 格式的覆盖率报告
├── lcov-report # HTML 格式的覆盖率报告
│ ├── base.css
│ ├── block-navigation.js
│ ├── favicon.png
│ ├── index.html # 覆盖率根文件
│ ├── prettify.css
│ ├── prettify.js
│ ├── sort-arrow-sprite.png
│ ├── sorter.js
│ └── sum.js.html # sum.js 的覆盖率情况
└── lcov.info