Jest:JavaScript 测试这件事,交给它就行
Jest:JavaScript 测试这件事,交给它就行
Jest 在 GitHub 上拿到了 45,430 Star。
Facebook 搞出来的 JavaScript 测试框架,现在由社区维护。开箱即用,不用东拼西凑测试工具链,装上就能跑。

1、它解决什么问题
写 JavaScript 代码的人迟早要面对测试这件事。自己拼 Mocha + Chai + Sinon + Istanbul,光配环境就半天,换个项目又得重来一遍。
Jest 把这些东西打包好了。测试运行器、断言库、覆盖率报告、Mock 工具,一个包全带。装完 npm install --save-dev jest,写个 sum.test.js,跑 npm test,出结果。
2、核心能力
即时反馈的 Watch 模式。改了哪个文件,只跑跟它相关的测试,不用每次全量跑。项目大了以后这个差距很明显。
快照测试。把组件渲染结果、API 返回的大对象存成快照文件,下次跑的时候自动对比。UI 组件的回归测试基本靠它。
自动 Mock。模块依赖自动拦截,不用手动写 Mock 函数。jest.mock('./module') 一行搞定。

3、跟主流工具的配合
Jest 对 Babel、webpack、Vite、Parcel、TypeScript 都有现成的适配方案。
用 Babel 转译的话,加个 @babel/preset-env,Jest 自动走 babel-jest 处理。TypeScript 项目装个 @babel/preset-typescript 也行,想做类型检查就换 ts-jest。
webpack 和 Vite 的项目各有专门的配置指南,照着文档改几行就行。
4、上手过程
npm install --save-dev jest
写一个被测函数:
// sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
写一个测试文件:
// sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
package.json 里加一行:
{ "scripts": { "test": "jest" } }
跑 npm test,看到 PASS 就算跑通了。整个过程不超过五分钟。
5、什么项目适合用
前端、后端、全栈的 JavaScript/TypeScript 项目都能用。React、Vue、Node.js 的社区里 Jest 的采用率都很高。如果团队里测试工具链还没统一,Jest 是一个低风险的起点,不需要额外的编排工具,也不需要写一堆胶水代码。
社区里 Jest 的采用率都很高。如果团队里测试工具链还没统一,Jest 是一个低风险的起点,不需要额外的编排工具,也不需要写一堆胶水代码。
更多推荐


所有评论(0)