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

JestReact Testing Library:前端测试的最佳实践

Jest 和 React Testing Library (RTL) 是前端开发中用于测试 React 应用的首选工具。...Jest 是一个功能丰富的JavaScript测试框架,而React Testing Library 是一种提倡以用户角度编写测试的库,它鼓励测试组件的行为而不是内部实现细节。...安装和配置首先,确保你已经安装了react, react-dom, jest, @testing-library/react, 和 @testing-library/jest-dom。...测试组件的交互性React Testing Library 强调测试组件的行为,而不是它的实现细节。...选择性运行测试使用--findRelatedTests选项只运行更改相关的测试,以加快测试速度:npx jest --findRelatedTests使用快照测试对于不经常更改的组件,使用快照测试可以节省时间

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

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

原文:https://css-tricks.com/testing-react-hooks-with-enzyme-and-react-testing-library/ 当你开始在应用中使用React...我们将介绍使用Enzyme和React Testing Library编写测试,这两个库都能做到这一点。...使用react-testing-library测试 我们将为此写三个测试: 1、初始待办事项的渲染 2、我们可以加一个新的待办事项 3、我们可以删除一个待办事项 首先,我们安装需要的安装包: npm install...--save-dev @testing-library/jest-dom @testing-library/react 接下来,我们可以导入安装包和文件: import React from "react...无论你是使用Enzyme或是enzymeReact Testing Library其中之一来写测试完全取决于你。不管怎样,试着使用linting,毫无疑问,你会很高兴你这样做了。

4K30

React源码阅读(一):从目录结构开始

Reconciler(协调器)—— 负责找出变化的组件传入渲染器 Renderer(渲染器)—— 负责渲染任务,将渲染器传来的组件渲染进页面 对应的架构是怎么体现在文件上的,我们目前并不知道,...: react- 开头的文件夹 react文件夹 scheduler调度器文件夹 shared 发现这里存放着很多公用的变量、函数、类型,那这块晚点看 其他包 那么我们会发现这里有两个显而易见的核心...react&&scheduler,当然react-开头的文件夹也是重点,其中对应架构的文件夹基本如下: Renderer渲染器放在哪?...react-fetch 用于数据请求,这个不用说 react-interactions 用于测试交互相关的内部特性,比如React的事件模型 react-reconciler 上文说过...,reconciler是协调器,这里让我们可以构建自己的Renderer 辅助包 react-is 用于测试组件是否是某类型 react-refresh 热重载的react官方实现;

79510

React 设计模式 0x8:测试

: npm test # React Testing Library React Testing Library 基于 DOM Testing Library 添加了用于处理 React 组件的 API...更多信息,请访问 https://testing-library.com/docs/react-testing-library/intro (opens new window)。...label htmlFor="search">Search:).toJSON(); expect(tree).toMatchSnapshot(); }); 当应用程序中发生更改时,快照测试将捕获更改并将其先前的快照进行比较...# React 测试最佳实践 对每个组件编写测试 为每个组件编写测试,以确保它们能够正确地渲染和响应 使用测试库 使用 Jest 和 React Testing Library测试库,它们提供了专门用于测试...React 组件的工具和函数 编写测试用例 编写完整的测试用例,覆盖组件的所有代码路径,包括正常情况和异常情况 使用快照测试 使用 Jest 中的快照测试功能来验证组件是否按预期呈现 使用模拟数据

1.8K10

React 组件测试技巧

创建/清理 act() 数据获取 mock 模块 事件 计时器 快照测试渲染器 缺少什么?...--- act() {#act} 在编写 UI 测试时,可以将渲染、用户事件或数据获取等任务视为用户界面交互的“单元”。...React 提供了一个名为 act() 的助手,它确保在进行任何断言之前,这些“单元”相关的所有更新都已处理并应用于 DOM: act(() => { // 渲染组件 }); // 进行断言 这有助于使测试运行更接近真实用户在使用应用程序时的体验...--- 快照测试 {#snapshot-testing} 像 Jest 这样的框架还允许你使用 toMatchSnapshot / toMatchInlineSnapshot 保存数据的“快照”。...--- 多渲染器 {#multiple-renderers} 在极少数情况下,你可能正在使用多个渲染器的组件上运行测试

4.9K00

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

一、技术选型: Jest + Enzyme + react-hooks-testing-library 1.1 jest Jest是FaceBook出品的前端测试框架,适合用于ReactReact...二、环境配置 直接贴上所需要安装的依赖: "devDependencies": { "@testing-library/react-hooks": "^3.2.1", //React...Jest提供了snapshot快照功能用于UI测试,可以创建组件的渲染快照并将其以前保存的快照进行比较,如果两者不匹配,则测试失败。...单元测试React Native v0.59版本以后,RN也支持了React Hooks的开发,由于Enzyme对于Hooks的测试支持不理想,我们专门引入了react-hooks-testing-library...10.1 安装 npm install --save-dev @testing-library/react-hooks 10.2 useState 测试 // useCityName.js import

6K30

2022年3月最新Eslint + Prettier + Husky + Stylelint + Jest + CICD 超详细前端单元测试&规范工程化工作流

3.1.1 初始化安装 项目中使用了ts,需要为Jest额外准备babel和typescript环境包 pnpm i jest -D pnpm i -D babel-jest @babel/core...测试用例 with 「ReactTestingLibrary」 安装依赖包 pnpm i -D @testing-library/jest-dom @testing-library/react 在jest.setup.js...写入全局配置 import '@testing-library/jest-dom'; 写第一个测试用例: // home.test.tsx import Home from "...../pages/index"; import React from 'react' import { render, screen } from '@testing-library/react' it(...同时在此补上官网链接 「jestjs.io/docs/gettin… 」 「testing-library.com/docs/react-… 」 建议有问题还是啃文档吧 再补上一些有用的教程 「juejin.cn

1.8K10

前端食堂技术周刊第 34 期:Node.js v18 、Nuxt 3 RC1、Parcel v2.5.0、计算机程序的构造和解释

JavaScript 测试教程[10] 教程包含 10 个部分,包括单元测试快照测试、集成测试、端到端测试(E2E) 等等。...Jest 基础知识 使用 Enzyme 测试 React 组件 组件 Props 测试、mount 函数渲染、快照测试 Mock 模拟 API 调用、模拟 React 组件交互 使用 react-hooks-testing-library...测试 Hooks 使用 Cypress 进行端到端测试(E2E) 对比 React Testing Library 和 Enzyme 使用 Jest 和 React Testing Library 的...Mock 进阶 Linux 命令行世界的生存指南[11] 这本电子书用讲故事的方式介绍了如何生存在 Linux 命令行的世界,着眼于更宏大的视角,试着向你传授如何命令行界面友好的相处。...: https://wanago.io/2022/04/18/advanced-mocking-jest-react-testing-library/ [11] Linux 命令行世界的生存指南: https

1.1K20

是时候说再见了,Enzyme.js

如今,市面上有两个用于测试 React 组件的库在相互竞争:Enzyme 和 React Testing Library,我想说服你的是不要在你的新代码中继续使用 Enzyme 了。...,Kent C.Dodds 在他的博客上宣布了 React Testing Library 的发布,这彻底改变了在 React 中编写单元测试的方法。...似乎 Facebook——React 的诞生地——已经冻结了他们的 Enzyme 测试并禁止在任何新测试中使用它: 虽然这个问题无关,但我认为值得注意的是,如果你可以使用像 React Testing...我更经常看到的是组件 props 的快照,它完全没有说明测试用例的意图,并且将测试内部实现细节紧密耦合起来。...如果你正在思考该如何拆分你的测试,我鼓励你在 React Testing Library 中编写尽可能多的测试。如果某些东西不能在 RTL 中测试(比如通过拖放在 SVG 中绘制一个矩形!)

43310

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

尝试测试 React Hooks Hooks 是 React 的一个令人兴奋的补充,毫无疑问,它可以帮助我们将逻辑模板分离。这样做使上述逻辑更具可测试性。不幸的是,测试钩子并没有那么简单。...在本文中,我们研究了如何使用 react-hooks-testing-library[2] 处理它。...这就是我们使用 react-hooks-testing-library[4] 的原因,我们将在下一篇教程里讲解如何更加舒适的测试 React Hooks 的方法,敬请期待!...参考资料 [1] simulate: https://enzymejs.github.io/enzyme/docs/api/ShallowWrapper/simulate.html [2] react-hooks-testing-library.../docs/hooks-overview.html [4] react-hooks-testing-library: https://wanago.io/2019/12/09/javascript-design-patterns-facade-react-hooks

4.8K20

从零打造组件库

Dodds 安装 yarn add jest babel-jest @babel/preset-env @babel/preset-react react-test-renderer @testing-library...下次再执行测试用例的时候,如果我们修改了组件的源码,那么会将本次的结果快照和上次的快照进行比对,如果不匹配,则测试不通过,需要我们修改测试用例更新快照。...还有一种是基于 ​DOM​ 的测试,基于 ​@testing-library/react: import React from 'react'; import { fireEvent, render,...screen } from '@testing-library/react'; import renderer from 'react-test-renderer'; import Button from...的完整测试,并且对比了 ​Enzyme​ 和 @testing-library/react​ 的区别,是很好的入门文章 React 单元测试策略及落地:系统的讲述了单元测试的意义及落地方案 组件库打包

1.6K10

2020 年你应该知道的 React

至少,您可以使用 React-test-renderer 在 Jest 测试中渲染 React 组件。这已经足以用 jest 来执行所谓的快照测试了。...快照测试的工作方式如下: 运行测试之后,将创建 React 组件中渲染的 DOM 元素的快照。当您在某个时间点再次运行测试时,将创建另一个快照,用作前一个快照的差异。...最终,您会发现自己在使用 Enzyme 或 React Testing Library (这两个都在 Jest 测试环境中使用)来进行更详细的测试功能集。...建议: Unit/Integration/Snapshot Tests: Jest + React Testing Library E2E Tests: Cypress 2e test: Cypress...: Jest with React Testing Library 实用程序库: JavaScript 国际化: react-i18next React 桌面: Electron 大型应用程序 样板文件

14.4K40
领券