Jest 是 facebook 开源的基于node.js的单元测试框架,Jest 的一个理念是提供一套完整集成的 “零配置” 测试体验。使用 Jest, 可以有效降低编写单元测试的难度。
安装及基本配置
使用yarn安装:
1 | yarn add --dev jest |
或npm安装:
1 | npm install --save-dev jest |
在package.json文件的scripts选项配置下面的测试命令:
1 | { |
在项目根目录新建一个test文件夹,用来管理测试文件,然后在package.json文件里加入下面的配置项:
1 | { |
其中,testRegex是匹配测试文件路径的正则表达式。
编写一个添加两个数字的假设函数的测试。首先,在src目录创建一个sum.js文件:
1 | function sum(a, b) { |
然后,在test目录创建一个名为的文件sum.test.js。这将包含的实际测试代码:
1 | const sum = require('../src/sum'); |
最后,运行yarn test或npm run test,将打印下面这个消息:
1 | PASS test/sum.test.js |
使用Babel
如果需要使用Babel,可以通过yarn来安装所需的依赖:
1 | yarn add --dev babel-jest @babel/core @babel/preset-env |
或npm安装:
1 | npm install --save-dev babel-jest @babel/core @babel/preset-env |
在工程的根目录下创建一个babel.config.js文件用于配置与当前node版本兼容的Babel:
1 | // babel.config.js |
如果,项目已经配置过es6开发环境,只需要安装babel-jest即可。
使用ESLint检测
安装ESLint:
1 | npm install eslint --save-dev |
在eslint配置文件.eslintrc中加入以下代码:
1 | "env": { |
生成测试覆盖率报告
只需要在jest命令后加入 –coverage即可:
1 | { |
生成的测试报告如下:
1 | PASS test/sum.test.js |
附录
更多关于Jest的内容请移步官网:Jest文档