jest

"lint-staged": {
      "__tests__/**/*.js": "jest findRelatedTests" // 值检查更新的测试文件
 }

转载于:https://www.cnblogs.com/Running00/p/11596381.html

### Jest 入门教程 #### 什么是 JestJest 是一个由 Facebook 开发的 JavaScript 单元测试框架,它提供了简单易用的 API 和强大的特性来帮助开发者编写高质量的测试代码。其主要特点包括快速运行、内置断言库和支持异步代码测试。 --- #### 安装 Jest 为了使用 Jest 进行前端自动化测试,首先需要安装 Jest 及其相关依赖项。可以通过 npm 或 yarn 来完成安装: ```bash npm install --save-dev jest ``` 或者 ```bash yarn add --dev jest ``` 这会将 Jest 添加到项目的开发依赖中[^2]。 --- #### 配置 Jest 创建 `jest.config.js` 文件以自定义 Jest 行为。以下是一个简单的配置示例: ```javascript module.exports = { verbose: true, testEnvironment: 'node', }; ``` 此配置启用了详细的日志输出并指定了 Node.js 环境作为默认环境[^2]。 --- #### 编写第一个测试案例 假设有一个名为 `example.js` 的源文件,其中包含如下函数: ```javascript // src/example.js function sum(a, b) { return a + b; } module.exports = { sum }; ``` 可以为其编写相应的测试文件 `example.test.js` 如下所示: ```javascript // __tests__/example.test.js const { sum } = require('../src/example'); test('测试加法', () => { expect(sum(1, 2)).toBe(3); }); ``` 这里通过调用 `expect()` 函数验证实际返回值是否等于预期值 `3`[^3]。 --- #### 测试其他工具函数 如果还有更多工具函数(如减法、乘法和除法),也可以按照类似方式扩展测试覆盖范围: ```javascript // tools.js function sum(a, b) { return a + b; } function sub(a, b) { return a - b; } function mul(a, b) { return a * b; } function div(a, b) { if (b === 0) throw new Error('Division by zero'); return a / b; } module.exports = { sum, sub, mul, div }; // tests/tools.test.js const { sum, sub, mul, div } = require('./tools'); test('测试各种运算', () => { expect(sum(1, 2)).toBe(3); expect(sub(10, 5)).toBe(5); expect(mul(2, 3)).toBe(6); expect(div(10, 2)).toBe(5); // 测试异常情况 expect(() => div(10, 0)).toThrow('Division by zero'); }); ``` 这段代码展示了如何利用 Jest 提供的功能全面地测试不同类型的逻辑。 --- #### 异步代码的测试方法 对于涉及 Promise 或 async/await 的异步代码,Jest 支持多种方式进行测试。例如: ```javascript // src/api.js async function fetchData() { return await Promise.resolve({ data: 'response' }); } module.exports = { fetchData }; // tests/api.test.js const { fetchData } = require('../src/api'); test('测试异步数据获取', async () => { const result = await fetchData(); expect(result).toEqual({ data: 'response' }); }); test('测试未解析状态下的Promise', () => { return fetchData().then((data) => { expect(data).toEqual({ data: 'response' }); }); }); ``` 以上两种形式均可有效处理异步场景中的测试需求[^1]。 --- #### 执行测试 完成上述设置后,在终端输入以下命令即可触发测试流程: ```bash npx jest ``` 或者将其添加至 `package.json` 中 scripts 节点以便简化操作: ```json { "scripts": { "test": "jest" } } ``` 之后只需运行 `npm run test` 或者 `yarn test` 就能自动执行所有测试用例。 --- #### 总结 本文介绍了 Jest 的基本概念以及从安装到实践的具体步骤,涵盖了同步与异步代码的不同测试技巧。希望这些内容能够帮助您顺利开启 Jest 学习之旅! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值