jest
jest 是 facebook 推出的一款测试框架, 集成了前面所讲的 Mocha 和 chai,jsdom,sinon 等功能
安装
- npm install --save-dev jest
- npm install -g jest
基本用法
和之前介绍的 mocha 和 chai 的功能很像, 甚至可以兼容 mocha 和 chai 的语法
- test('两数相加结果为两个数字的和', () => {
- expect(addNum(1, 2)).toBe(3);
- });
运行命令 jest 后会自动运行. test.js 和. spec.js 这种格式的文件
涉及到运用 ES 或 react 的, 要与 babel 相结合, 加上. babelrc 文件即可, 老玩法了
mock 文件和 CSS module 的问题
如果 js 文件中引用了 css 或者本地其他文件, 那么就可能测试失败
为了解决这个问题, 同时也为了提高测试效率, 需要在 package.json 中配置:
- "jest": {
- "moduleNameMapper": {
- "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/test/config/fileMock.js",
- "\\.(css|less)$": "identity-obj-proxy"
- }
而 fileMock.js 文件内容为:
module.exports = 'test-file-stub';
然后安装 identity-obj-proxy 即可:
npm install --save-dev identity-obj-proxy
生成测试覆盖率报告
只需要在 jest 命令后加入 --coverage 即可
jest --coverage
来源: https://www.cnblogs.com/vvjiang/p/8620847.html