前言
Jest 是一个由 facebook 推出的 JavaScript 测试框架,它拥有简单易用的 API,并且能够提供全面的单元测试、集成测试和快照测试,使得前端的测试工作可以更加高效和准确。本文将会针对 Jest 的安装、使用以及在 React 中的实践进行详细的讲解,期间会不断的举例说明,希望能够对广大前端开发者起到指导和学习作用。
Jest 的安装
Jest 是基于 Node.js 开发的,所以安装前需要确保已经安装了 Node.js。安装 Jest 只需要使用 npm 模块来进行安装即可,具体的使用方式如下:
npm install jest --save-dev
关于 Jest 的安装我们需要了解一些参数:
save-dev
参数:表示将 Jest 安装到开发环境下,开发环境和生产环境是有区别的,在开发环境下我们需要测试代码,而在生产环境下,我们不需要测试代码,这样可以减少代码体积和优化性能。--save-dev
参数:同上,只是简写方式,具体使用上面的方式即可。
安装完毕之后,我们需要在项目中添加一个 .babelrc
的配置文件,因为 Jest 的配置文件是基于 Babel 的,若在项目中使用了 ES6 的语法, Jest 是无法识别的,这时候就需要我们在 .babelrc 文件中添加配置:
{ "presets": ["@babel/preset-env"] }
如上配置我们已经完成了 Jest 的安装和项目的配置,接下来就可以通过 Jest 来进行测试了。
Jest 的使用
Jest 的使用非常简单易懂,也十分的易用,几乎不需要配置,有着很好的自动化机制,我们来看看最基本的测试用例。在写测试用例之前,我们需要了解 Jest 的一些基本概念:
describe
:表示一个测试模块,里面可以包含多个测试用例。it
:表示一个测试用例,里面包含了需要测试的代码。expect
:是 Jest 中的一个内置对象,表示期望得到的值就是传递的参数。
先随便写一段代码:
function add(x, y) { return x + y; } add(1, 2);
接下来,我们就可以写测试用例了:
describe("测试 add 函数", () => { it("1+2 should be equal to 3", () => { // 使用 expect 断言函数的返回值 expect(add(1, 2)).toBe(3); }); });
如上代码就是一个最简单的测试用例,在上面的代码中,我们使用了 describe、it 和 expect 三个 Jest 中的默认关键字,通过这三个关键字实现了一个简单的测试用例。现在我们可以运行测试了:
jest
Jest 将会自动运行所有测试用例,并给出测试结果,如下图所示:
可以看到我们的测试用例全部通过了,而且测试结果十分的明确易懂。
在 React 中使用 Jest
在实际的项目中,我们需要使用 Jest 进行 React 的测试,为此,我们需要在项目中安装 react-test-renderer,这是由 React 官方提供的一个管理 React 测试的工具,安装方式如下:
npm install react-test-renderer --save-dev
我们在完成之后,就可以开始编写 React 组件的测试用例。下面让我们来看看更为复杂的 React 组件测试,我们来创建一个 counter 组件:
-- -------------------- ---- ------- ----- ------- ------- --------------- - ------------------ - ------------- ---------- - - ------ ------------------ -- - -------------- - -- -- - --------------- ------ ---------------- - - --- -- ---------------- - -- -- - --------------- ------ ---------------- - - --- -- -------- - ------ - ----- --------------------------- ------- ------------------------------------------------ ------- -------------------------------------------------- ------ -- - -
如上代码就是一个 counter 组件,这个组件具有增加和减少计数器的功能,现在让我们来编写测试用例:
-- -------------------- ---- ------- ------ ----- ---- -------- ------ ------------ ---- ---------------------- ------ ------- ---- ---------- ------------ ------- ---- -- -- - ---------- --- ------- ----------- -- -- - ----- ------------ - ---------------------------- ---------------- ---- ------------------------------------------------ --- ------------- --- ----- ---- --- ------ -- --------- -- -- - ----- ------------ - ---------------------------- ---------------- ---- ----- ------------ - ------------------ ----- ------ - ---------------------------------- ----------------------- ------------------------------------------------------------- --- ------------- --- ----- ---- --- ------ -- --------- -- -- - ----- ------------ - ---------------------------- ---------------- ---- ----- ------------ - ------------------ ----- ------ - ---------------------------------- ----------------------- ------------------------------------------------------------- --- ---
如上代码比之前的测试用例更为复杂,因为我们需要测试一个 React 组件,而这个组件还带有一些功能,我们使用了 findByType
方法来代替 querySelector
,通过这样的方式来查找需要被测试的元素。同时这里使用了 React 官方的测试工具 react-test-renderer 来进行测试,其中 create 方法用于渲染组件, testRenderer.toJSON() 返回渲染结果的 JSON 形式,方便我们快速准确的查看结果。
总结
我们在本文中详细讲解了 Jest 的安装和使用,以及在 React 中的实践。Jest 是一个简单易用的测试框架,非常适合前端的测试工作,同时,Jest 也有着灵活的配置和自动化机制,为前端开发者提供了全面丰富的测试功能,让我们能够更加快速方便的进行项目开发,提高代码质量和开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64858a9048841e989445690e