测试是软件开发的关键部分,可确保您的应用程序按预期运行。 Jest 是 JavaScript 生态系统中最流行的测试框架之一。 Jest 由 Facebook 开发,以其简单易用而闻名,使其成为初学者和经验丰富的开发人员的绝佳选择。
开始使用 Jest
在我们深入示例之前,让我们在您的项目中设置 Jest。如果尚未安装,可以使用 npm 安装它:
npm install --save-dev jest
接下来,将测试脚本添加到您的 package.json 中:
"scripts": { "test": "jest" }
现在您已经准备好编写一些测试了!
让我们创建一个简单的函数来测试。创建一个名为 math.js 的文件:
// math.js function add(a, b) { return a b; } module.exports = add;
现在,让我们为这个函数编写一个测试。创建一个名为 math.test.js 的文件:
// math.test.js const add = require('./math'); test('adds 1 2 to equal 3', () => { expect(add(1, 2)).toBe(3); });
在这个测试中,我们使用测试函数来定义测试用例。 Expect函数用于断言add(1, 2)的结果等于3。
运行测试
您可以通过在终端中执行以下命令来运行测试:
npm test
您应该看到表明您的测试已通过的输出。
测试异步代码
Jest 还支持测试异步代码。让我们修改 math.js 文件以包含异步函数:
// math.js function fetchData() { return new Promise((resolve) => { setTimeout(() => { resolve('peanut butter'); }, 1000); }); } module.exports = { add, fetchData };
现在,让我们为 fetchData 编写一个测试:
// math.test.js const { add, fetchData } = require('./math'); test('adds 1 2 to equal 3', () => { expect(add(1, 2)).toBe(3); }); test('fetches data', async () => { const data = await fetchData(); expect(data).toBe('peanut butter'); });
在此测试中,我们将测试函数标记为异步并使用await 等待promise 解析。
模拟函数
Jest 提供了强大的模拟功能。假设您有一个进行 API 调用的函数。您可以模拟此函数以在测试期间控制其行为。
这是一个例子:
// api.js const axios = require('axios'); async function getUser() { const response = await axios.get('https://api.example.com/user'); return response.data; } module.exports = getUser;
您可以在测试中模拟 axios:
// api.test.js const axios = require('axios'); const getUser = require('./api'); jest.mock('axios'); test('fetches user data', async () => { const user = { name: 'John Doe' }; axios.get.mockResolvedValue({ data: user }); const result = await getUser(); expect(result).toEqual(user); });
在此测试中,我们模拟 axios.get 方法以返回预定义的响应,从而允许我们在不进行实际 API 调用的情况下测试 getUser。
Jest 是一个功能强大的测试框架,可以轻松为 JavaScript 应用程序编写和运行测试。凭借其简单的语法、对异步代码的支持以及内置的模拟功能,Jest 可以帮助您确保代码的可靠性和可维护性。立即开始将 Jest 集成到您的项目中,享受自动化测试的好处。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3