首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件

本篇教程是 JavaScript 测试系列实战 的第一篇教程,首先介绍了测试的类型,然后主要通过一个 React 项目教会你如何使用 Jest 编写第一个测试,然后使用 Enzyme 对 React 组件进行浅层渲染...Enzyme 浅层渲染后的组件还包括其他测试方法,可参考 https://enzymejs.github.io/enzyme/docs/api/shallow.html。...配置 jest-enzyme 你应该还记得,在刚才的测试代码中,我们还是使用了 Jest 自带的 Matcher(toEqual)。...我们通过 npm 来安装 jest-enzyme: npm install jest-enzyme 相应地在 src/setupTests.js 中添加相应的配置: // src/setupTests.js...我们将在下一篇教程中讲解如何去更“深层”地去测试我们的组件。

3K10

JavaScript 测试系列实战(二):深层渲染和快照测试

今天,我们将更深入地挖掘并学习如何测试组件的 Props,如何(以及为什么)使用 mount 函数,以及什么是 Jest 快照测试。...想要查看可用函数的完整列表,可以浏览 Enzyme 文档 https://github.com/airbnb/enzyme/blob/master/docs/api/shallow.md。...首先运行 npm test ,然后输入 i 以交互方式更新失败的快照。官方的 Jest 文档提供了一个动画来展示这个过程: ?...小结 在本文中,我们介绍了如何直接去测试组件的 Props,并学习了 mount 函数和浅层渲染之间的区别。...- END - ● JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件● 你不知道的 Npm(Node.js 进阶必备好文)● 用动画和实战打开 React

2.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JavaScript测试教程-part 2:引入 Enzyme 并测试 React 组件

    Enzyme 基础 Enzyme 是一个库,用于在测试时处理你的 React 组件。它由 Airbnb 开发。 设置 Enzyme 继续上一篇文章的内容,假设你 Jest 已经能够工作了。...相关列表,请访问 Jest 文档【https://jestjs.io/docs/zh/expect】。 让我们创建一些更有趣的测试。先创建一个全新的组件。...它是 enzyme-matchers 库的一部分。要将其与 Jest 一起使用,请安装 jest-enzyme 包。...要检查函数列表,请转到 Enzyme 文档【https://github.com/airbnb/enzyme/blob/master/docs/api/shallow.md】。...在本教程的后续部分中,我将介绍其他类型的渲染,并学习如何测试程序的不同部分。它将包括快照测试和模拟数据之类的技术。下次见!

    1.4K50

    JavaScript 测试系列实战(三):使用 Mock 模拟模块并处理组件交互

    在之前的两篇教程中,我们学会了如何去测试最简单的 React 组件。在实际开发中,我们的组件经常需要从外部 API 获取数据,并且组件的交互逻辑也往往更复杂。...在这篇教程中,我们将学习如何测试更复杂的组件,包括用 Mock 去编写涉及外部 API 的测试,以及通过 Enzyme 来轻松模拟组件交互 初次尝试 Jest Mock 我们的应用程序通常需要从外部的...{ shallow } from 'enzyme'; import ToDoList from '....我们修改测试代码如下: import React from 'react'; import { shallow } from 'enzyme'; import ToDoList from '....我们将测试状态是否随着我们的新任务而更新,其中比较有趣的是请求是异步的,我们继续修改代码如下: import React from 'react'; import { shallow } from 'enzyme

    4.8K20

    JavaScript 测试教程–part 3:测试 props,挂载函数和快照测试

    JavaScript测试教程-part 1:用 Jest 进行单元测试 2. JavaScript测试教程–part 2:引入 Enzyme 并测试 React 组件 3....今天,将进行更深入的研究,并学习如何测试 props,如何(以及为什么)使用 mount 函数以及什么是快照测试。开始吧! 测试 props 在上一篇文章中,我们测试了通过一些 props 的结果。...ToDoList.test.js import React from 'react'; import { shallow } from 'enzyme'; import ToDoList from '....有关可用函数的完整列表,请访问文档【https://github.com/airbnb/enzyme/blob/master/docs/api/shallow.md】。...官方 Jest 文档【https://jestjs.io/docs/zh/snapshot-testing】中有一个很好的动画演示了这个过程。 快照测试可以成为跟踪组件更改的非常强大的工具。

    1.7K20

    写代码无BUG,网易云前端单元测试方案总结

    我希望通过对这些工具的各自作用的掌握,了解完整的前端测试技术方案。前端单元测试的领域也很多,这里主要讲对于前端组件如何进行单元测试,最后会主要介绍下对于 React 组件的一些测试方法总结。...,而且支持的功能更加清晰,不用考虑如何组合使用的问题,而且下文介绍的 jest 测试框架也是使用这种风格。...enzyme Enzyme基础配置如下: npm install enzyme enzyme-adapter-react-16 jest-enzyme jest-environment-enzyme jest-canvas-mock...上面建立了一个使用 Enzyme 比较友好的环境,可以直接在全局作用域里引用 React , shallow, mount 等 API。.../blob/master/packages/jest-enzyme/README.md [9] 官方文档: https://enzymejs.github.io/enzyme/docs/api/render.html

    9.6K20

    Jest:给你的 React 项目加上单元测试

    Jest 是一款轻量的 JavaScript 测试框架,它的卖点是简单好用,由 facebook 出品。本文就简单讲讲如何使用 Jest 对 React 组件进行测试。 为什么需要单元测试?...注释和文档容易忘记修改,但测试用例的描述永远是准确的,因为不对就无法通过测试; 可测试性好的代码,往往可维护性更好。...Jest 基本使用 我们先写一个简单的函数,作为被测试的模块。...更多 API 可以看文档: https://jestjs.io/docs/expect 你可以用 describe 方法将多个相关的 test 组合起来,这样能让你的测试用例更好地被组织,测试报告输出也更有条理...yarn add -D @types/enzyme @types/enzyme-adapter-react-16 示例: import Enzyme, { shallow } from 'enzyme

    2.9K20

    干货 | 携程租车React Native单元测试实践

    一、技术选型: Jest + Enzyme + react-hooks-testing-library 1.1 jest Jest是FaceBook出品的前端测试框架,适合用于React和React...1.2 Enzyme Enzyme是AirBnb开源的React测试工具库,通过一套简洁的api,可以渲染一个或多个组件,查找元素,模拟元素交互(如点击,触摸),通过和Jest相互配合可以提供完整的...Hooks测试支持,仅支持React 16.9.0以上 "babel-jest": "^24.8.0", "enzyme": "^3.10.0", "enzyme-adapter-react...组件测试 import { mount, shallow, render } from ‘enzyme'; Enzyme对测试组件进行渲染分为三种: shallow:浅渲染,仅渲染单个组件,不包括其子组件...这对于隔离组件进行纯单元测试很有用,效率高,可以进行模拟交互,并且从Enzyme 3开始也可以访问组件生命周期,所以一般组件测试用shallow即可。 mount:完整渲染,包括其子组件。

    6.1K30

    如何自动化测试 React Native 项目 (下篇) - 单元测试

    接着上篇的内容, 这篇文章会详细的介绍在 Glow 我们如何写单元测试, 以及在 React Native 中各个模块单元测试的详细实现方式。...单元测试工具 - Jest & Enzyme Jest - Facebook Jest 是 Facebook 开源的 Javascript 测试框架,提供了许多好用的 API,先介绍下主要的优点: 自带...Enzyme 提供了三种 render React component的方法, static, shallow 和 mount。 最常用的render方法是 Shallow Render。...实际应用时,我们用了 jest 的 shallow 方法来生成测试组件的wrapper; 用 enzyme-to-json/serializer 这个 lib 把生成的 shallowWrapper 转化成...组件交互测试 用 Enzyme shallow 生成的 ReactWrapper 会提供一些用来进行组件交互测试的 API,比如 find(), parents(), children()等选择器进行元素查找

    3.3K21

    从echarts-for-react源码中学习如何写单元测试

    ,作用是「浅复制obj中的keys」,如何判断它返回的是期待的结果?...() 作用: 把遇到的计时器挂起,在必要时,再使用jest.runOnlyPendingTimers执行掉已经挂起的计时器 这里使用jest.useFakeTimers()的目的就是暂停正在执行的timer...()生成完整的React组件 ② mount()/shallow()/render()的区别如下: [1] mount()借助jsdom模拟浏览器环境,并提供DOM api和生命周期的支持,方便测试HOC...通过本文,你应该知道 ① jest.useFakeTimers()的作用及何时使用 ② 如何测试function ③ 如何测试ReactComponent ④ mount()/shallow()/render...()的区别 ⑤ toEqual()和toBe()的区别 ⑥ 如何测试DOM节点上的属性 ⑦ 如何测试React组件实例上的属性 ⑧ 如何测试组件上的props ⑨ jest.fn()的作用 ⑩ 如何测试组件已卸载

    6.2K50

    【译】使用Enzyme和React Testing Library测试React Hooks

    确保代码没有bug的一种方法就是编写测试用例。测试React hooks与测试一般程序的方式没有太大区别。 在本教程中,我们将了解如何通过使用带有hooks的to-do应用程序来实现这一点。...如果你第一次使用Enzyme,我们之前发布过关于它的文章,《Enzyme如何在React应用中与Jest一起使用》。我们可以用他们来深入测试React Hooks。...import React from "react"; import { shallow, mount } from "enzyme"; import Todo from ".....it("renders", () => { shallow(); }); Test 2: 展示初始待办事项 这里我们将使用mount方法,它允许我们深入到比shallow更深的地方。...根据官方文档,React取决于钩子调用的关联状态和相应的useState调用的顺序。这段代码打乱了顺序,因为钩子只有在条件为true时才会被调用。 这也适用于useEffect和其他钩子。

    4.1K30

    原创干货:前端单元测试Jest零基础入门教学

    (例如浏览器),然后运行你的代码,看代码是否按预期运行 ---- 这里为了降低文章篇幅,对于初学者更友好,于是这里使用我开源的通用脚手架,集成TypeScript+JavaScript混合开发,Jest...index.html文件,可以看到单元测试报告 ---- 这样里面有一些像分支覆盖率、函数、代码函数覆盖等 其实像Jest用起来还是比较方便的,核心理念就是使用测试框架运行业务代码,再用单元测试代码去检测你的业务代码.../src/routers/login'; import { mount, shallow } from 'enzyme'; import React from 'react'; import toJson...function begin '); const wrapper = shallow( {}...单元测试的编写难度可能比业务代码难度更高,本文带你入门,没有问题,其他的API需要你去多看文档,学习,多写。

    1.1K20

    那些年错过的React组件单元测试(上)

    然后我翻阅了大量的文档,发现基于dva的单元测试文档比较少,因此在有了一番实践之后,我梳理了几篇文章,希望对于想使用 Jest 进行 React + Dva + Antd 单元测试的你能有所帮助。...文章内容力求深入浅出,浅显易懂~ “介于内容全部收在一篇会太长,计划分为两篇,本篇是第一篇,主要介绍如何快速上手jest以及在实战中常用的功能及api ?...Jest 关于Jest,我们参考一下其Jest 官网[1],它是Facebook开源的一个前端测试框架,主要用于React和React Native的单元测试,已被集成在create-react-app...Jest特点: 零配置 快照 隔离 优秀的 api 快速且安全 代码覆盖率 轻松模拟 优秀的报错信息 Enzyme Enzyme是Airbnb开源的React测试工具库,提供了一套简洁强大的API,并内置...总结 到这里,关于前端单元测试的一些基础背景和Jest的基础api就介绍完了,在下一篇文章中,我会结合项目中的一个React组件来讲解如何做组件单元测试。 ?

    5K20

    前端测试体系建设与最佳实践总结

    单元测试:是指对软件中的最小可测试单元进行检查和验证,通常指的是独立测试单个函数。 UI 测试:是对图形交互界面的测试。 集成测试:就是测试应用中不同模块如何集成,如何一起工作,这和它的名字一致。...当然因为 Enzyme 出的比较早,它的周围生态更好,很多大厂都用了它,不过也有一些正在做 迁移。...e2e,并与 src 同放在根目录下 VScode 和 WebStorm 都有对应的 Jest 插件,安装后书写代码时有代码补全,debug 和自动运行等功能 如何编写测试 其实,Jest 的语法蛮简单的...下面一起看一下如何处理这些情况。 LocalStorage 因为 Jest 的环境是基于 jsdom, 所以我们需要去模拟 localstorage 的行为。借鉴 Vue2.0 里数据侦测的方法。...文档 写的相当详细,对 Vue 项目编写测试时可以参考。

    5.4K30
    领券