Jest 是一个非常流行的 JavaScript 测试框架。它被广泛应用于前端和后端开发中,并且是 React 应用程序的默认测试工具。在本文中,我们将介绍如何使用 Jest 进行前端测试。
安装 Jest
要开始使用 Jest,首先需要在本地计算机上安装它。可以使用 npm 包管理器轻松安装 Jest:
npm install --save-dev jest
请注意,--save-dev 标志表示 Jest 只用于开发目的,而不是在生产中部署。
编写测试用例
一旦安装了 Jest,就可以编写测试用例了。编写测试用例时,通常会创建一个单独的文件夹来存放所有测试相关的代码和资料。例如,我们可以在项目根目录下创建一个名为 __tests__
的文件夹,并在其中创建一个名为 sum.test.js
的文件,该文件包含以下内容:
const sum = require('./sum'); test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); });
这个测试用例使用 require
导入一个名为 sum
的模块,并使用 Jest 的 test
函数定义了一个测试场景。在这个场景中,我们期望将 1 和 2 传递给 sum
函数并返回 3。如果结果与我们的预期不符,测试将失败。
值得注意的是,expect
和 toBe
是 Jest 的特定函数。在这个例子中,我们使用了 expect
函数来检查 sum(1, 2)
是否等于 3,使用 toBe
函数来比较两个对象是否相等。
运行测试用例
一旦编写了测试用例,就可以运行它们并查看结果。要运行测试,可以使用以下命令:
npm test
这将启动 Jest 并运行所有位于 __tests__
文件夹中的测试用例。如果所有测试都通过,则输出类似于以下内容的消息:
PASS __tests__/sum.test.js ✓ adds 1 + 2 to equal 3 (5ms)
否则,Jest 将显示哪些测试失败了,并提供有关失败原因的详细信息。
高级用法
除了基本的使用方式外,Jest 还提供了许多高级功能,例如集成到编辑器或 IDE 中、运行过滤和覆盖率报告。这里只介绍其中一些。
使用 Matchers
Jest 提供了许多 Matcher 函数,可以帮助您测试代码的各个方面,例如字符串匹配、数字比较和对象验证。以下是几个常用的 Matcher 函数:
toEqual()
:比较对象是否相等。toBeGreaterThan()
和toBeLessThan()
:检查数字是否大于或小于另一个数字。toMatch()
:检查字符串是否匹配指定的模式。toThrow()
:检查函数是否引发异常。
使用 Mocks
在测试过程中,您可能需要模拟某些依赖项或外部服务。Jest 允许您使用 Mock 函数来模拟这些组件。以下是一个例子:
-- -------------------- ---- ------- ----- --------- - ----------------------- --------- ---- -- ------ -------- -- -- - ----- ------------ - ------------ -- - ------------------------- --------- --- ------------------------ ----------------------------------------------- ---
在这个测试用例中,我们使用 Jest 的 fn()
函数创建了一个 Mock 函数,并将其传递给 fetchData
函数。当 fetchData
函数调用回调函数时,它应该传递一个名为 "peanut butter" 的字符串。如果回调函数被正确调用
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/50414