【前端单元测试入门05】react的单元测试之jest
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