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

如何使用jest在React组件上快照测试随机映射键

在React组件上使用Jest进行快照测试随机映射键的方法如下:

  1. 首先,确保你已经安装了Jest和React Testing Library。可以使用以下命令进行安装:
代码语言:txt
复制
npm install --save-dev jest react-testing-library
  1. 创建一个测试文件,命名为Component.test.js(假设你要测试的组件名为Component)。在测试文件中,导入React、React Testing Library和要测试的组件:
代码语言:txt
复制
import React from 'react';
import { render } from '@testing-library/react';
import Component from './Component';
  1. 在测试文件中,使用test函数来定义一个测试用例。可以使用describe函数来组织多个测试用例。在测试用例中,使用render函数来渲染要测试的组件,并获取组件的容器元素:
代码语言:txt
复制
test('should match snapshot with random mapped keys', () => {
  const { container } = render(<Component />);
  // ...
});
  1. 在测试用例中,使用expect函数来断言组件的快照是否与预期一致。可以使用toMatchSnapshot函数来比较组件的快照:
代码语言:txt
复制
test('should match snapshot with random mapped keys', () => {
  const { container } = render(<Component />);
  expect(container).toMatchSnapshot();
});
  1. 运行测试命令,使用Jest来执行测试文件:
代码语言:txt
复制
npx jest Component.test.js

Jest会执行测试文件,并生成一个快照文件(.snap文件)。如果组件的快照与之前生成的快照不一致,Jest会报告测试失败。

这样,你就可以使用Jest在React组件上进行快照测试随机映射键了。

关于Jest和React Testing Library的更多信息和用法,你可以参考腾讯云的产品文档:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

在上一篇教程中,我们已经介绍了使用 Enzyme 测试 React 组件的基本知识。...今天,我们将更深入地挖掘并学习如何测试组件的 Props,如何(以及为什么)使用 mount 函数,以及什么是 Jest 快照测试。...测试与 DOM 的交互或者处理高阶组件时,mount 函数也可以派上用场。_Mount 使用 DOM 实现的模拟,Jest 默认使用的是 jsdom。...输入以下命令,一更新所有快照: npm test -- -u 实际,目前 CRA 默认会在监听模式下运行 Jest,我们可以一个个更新冲突的快照。...小结 本文中,我们介绍了如何直接去测试组件的 Props,并学习了 mount 函数和浅层渲染之间的区别。

2.1K20

web前端好帮手 - Jest单元测试工具

本文介绍如何使用Jest覆盖Web前端单元测试如何统计测试覆盖率,Jest对比Mocha等内容。 Jest是什么? ? Jest是一个令人愉快的 JavaScript 测试框架,专注于简洁明快。...而现在只需要运行npm install -D jest安装Jest,便可以快速接入单元测试编写中。...合理使用Snapshot Jest snapshot(快照)原本是用来测试React 虚拟vdom结构的,利用expect(value).toMatchSnapshot([快照名称])将复杂的vdome...所以推荐大家用.toMatchSnapshot([快照名称])给快照设置命名,差异对比就能一眼看出是哪句测试代码出问题了,也不会有维护的问题。 React组件如何覆盖测试?...Webstorm —— Jest最好的调试工具 Webstorm调试Jest测试非常便利,事实,上文中测试截图都是Webstorm运行的结果,在运行、调试两个方面,Webstorm体验都比node-inspect

5K40
  • React 设计模式 0x8:测试

    学习如何轻松构建可伸缩的 React 应用程序:测试 # 如何测试组件 测试每个 Web 应用程序中都非常重要,即使 React 中也是如此,特别是在其组件方面。...# 渲染测试 渲染测试是一种测试,用于验证您的组件是否正确渲染。 # 使用 Jest 进行功能测试 Jest测试 React 应用程序时非常流行的测试库。...# 使用 Jest 进行集成测试 大多数 React 应用程序中,通常需要与外部 API 集成以应用程序中发布和获取数据。 可以使用 Jest测试 API 行为,以查看预期和意外结果。...# React 测试最佳实践 对每个组件编写测试 为每个组件编写测试,以确保它们能够正确地渲染和响应 使用测试使用 JestReact Testing Library 等测试库,它们提供了专门用于测试...React 组件的工具和函数 编写测试用例 编写完整的测试用例,覆盖组件的所有代码路径,包括正常情况和异常情况 使用快照测试 使用 Jest 中的快照测试功能来验证组件是否按预期呈现 使用模拟数据

    1.8K10

    React Native自动化测试

    我们期待你能帮助我们提高测试覆盖率,以及提供更多的测试代码或是测试用例。 使用Jest测试 Jest命令行通过node来执行的纯js测试工具。测试代码放置__tests__目录下。...你可以react-native源代码的根目录中使用如下命令来运行现有的jest测试代码: npm test 我们建议你贡献代码的时候也添加自己的测试代码。...集成测试需要在模拟器/真机上运行,以验证模块、组件以及React Native的内核部分(比如bridge)端对端测试中运作正常。...Xcode中运行IntegrationTest和UIExplorer两个官方示例应用时,可以按下cmd + U来直接在本地运行集成测试快照测试 (iOS) 快照测试是集成测试的一种常见类型。...屏幕截图32位和64位色深以及不同的操作系统版本可能会有细微的差别,所以建议强制指定的配置环境中执行测试。此外我们还强烈建议所有的网络数据和其他的潜在依赖项都应该事先模拟。

    3K60

    前端接入单元测试(Node+React)

    node测试框架因为egg内置Mocha,因此不额外引入jestJest 被各种 React 应用推荐和使用。...react组件,最开始使用Enzyme,后面从React脚手架创建的项目自带React Testing Library(RTL),官方推荐使用RTLimport React from "react";import...那么如何避免这个问题呢?使用Snapshot快照可以解决。...,测试不通过,说明组件有改动更新快照对比结果:npm test – -u 了解测试覆盖率 Statements 语句覆盖率,它其实对应的就是js语法的语句,js解析成ast数中类型为 statement...extend, helper等模块编写单元测试,特别是controller重要的路由需要做单元测试;控制台和其他React项目可以利用jest工具,针对方法、组件、模块去做单元测试,特别是组件,可以利用快照功能避免多次修改测试用例

    3.3K30

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

    较大规模的前端项目中,测试对于保证代码质量十分重要,而React组件化和函数式编程, 这种相同输入一定返回相同输出的幂等特性特别适合单元测试。...快照测试:能够创造一个当前组件的渲染快照,通过和上次保存的快照进行比较,如果两者不匹配说明测试失败。 测试报告:内置了Istanbul,通过一定配置可以测试代码覆盖率,生成测试报告。...('InteractionManager'); 六、Jest UI快照测试 Jest提供了snapshot快照功能用于UI测试,可以创建组件的渲染快照并将其与以前保存的快照进行比较,如果两者不匹配,则测试失败...快照将在测试文件的当前文件路径自动生成的snapshots文件夹中保存。当主动修改造成ui变化时,使用jest -u来更新快照。..._onClear).toBeCalled();//测试组件实例的方法是否被调用 九、Redux测试 使用React或者React Native时通常会使用Redux进行状态的管理,需要mock store

    6.1K30

    使用 Jest 进行前端单元测试

    Jest 默认使用 Jasmine 语法,支持直接使用 Promise 和 async/await 进行异步测试,支持对 React 组件进行快照监控, 扩展和集成 Babel 等常用工具集也很方便。...例如使用 jest.useFakeTimers() 把遇到的计时器挂起,必要时再使用 jest.runOnlyPendingTimers() 执行掉已经挂起的计时器。...组件的变化做监控,14.0 以后版本的 Jest 提供了 React 组件快照功能(React Tree Snapshot Testing)。...可以通过 react-test-renderer,把 React 组件生成快照并暂存下来,之后跑用例时如果组件结果发生了改变则报错提醒。 例如下面做个简单的例子: ....提示我们组件的结果和一次保存的快照不同。这样就可以达到监控的目的。 另外如果修改了组件代码,需要更新快照,则带上参数 -u 重新运行一次即可,快照就会更新。

    5.6K90

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

    JavaScript测试教程-part 1:用 Jest 进行单元测试 2. JavaScript测试教程–part 2:引入 Enzyme 并测试 React 组件 3....JavaScript测试教程–part 4:模拟 API 调用和模拟 React 组件交互 在上一篇教程中,我介绍了使用 Enzyme 测试 React 组件的基础知识。...今天,将进行更深入的研究,并学习如何测试 props,如何(以及为什么)使用 mount 函数以及什么是快照测试。开始吧! 测试 props 在上一篇文章中,我们测试了通过一些 props 的结果。...但是实际,我们可以直接测试 props。让我们回到上次的 ToDoList 组件,不过这次要用一个新的 Task 组件。...测试期间,将渲染组件并创建其快照。它包含渲染组件的整个结构,应该与测试本身一起提交给存储库。再次运行快照测试时,新的快照将与旧的进行比较。如果它们不同,则测试将失败。

    1.7K20

    使用storybook管理React组件

    本文已React的UI组件为例,演示如何新建/集成Storybook到项目中,并对UI组件进行全方位的管理,包括发布、demo文档、测试等。 1....测试UI组件 4.1 写测试用例的原因 找到bug 新修改没有改变已有的接口和功能 将测试用例作为文档 4.2 测试结构 使用storyshots插件来实现,其核心是使用Jest,原理是每次生成一份DOM...,通过断言来测试UI组件的属性,更多使用方法可以参考specifications插件的使用。...4.4 测试样式 样式测试这里采用Puppeteer 和Jest来实现,其原理是利用Puppeteer的无头的chrome浏览器和storybook的url绑定组件特点,来渲染不同的UI组件,再进行图片快照的对比...://localhost:9009 jest:integration", 第一次运行npm run test:integration可以生成UI组件渲染的一次快照,再次运行会将新旧快照进行对比,只有完全一致才能测试通过

    3.4K20

    react生态下jest单元测试

    一:jest框架搭建 1.本地创建一个目录jest_practice 2.使用编辑器VScode打开目录,紧接着终端中打开,执行npm init 图片 3.执行以下命令: 注意:这里我们使用cnpm...–coverage 图片 会在html-report目录下生成report.html文件 图片 2.SnapShot Testing(快照测试): 快照测试第一次运行的时候会将被测试ui组件不同情况下的渲染结果保存一份快照文件...后面每次再运行快照测试时,都会和第一次的比较,若组件代码有所改变,则快照测试会失败,如果组件代码是最新的,优化过得代码,则需要更新快照,免得每次执行报错。...更新快照命令:jest --updateSnapshot 被测组件代码如下: //被测组件 import React from 'react'; const STATUS = { HOVERED...写入或测试快照之前,将检查这些匹配器,然后将其保存到快照文件而不是接收到的值 it('will check the matchers and pass', () => { const user

    2.3K20

    React 组件测试技巧

    React 组件的常见测试模式。 注意: 此页面假设你正在使用 Jest 作为测试运行器。如果你使用不同的测试运行器,你可能需要调整 API,但整体的解决方案是相同的。...测试环境页面阅读更多关于设置测试环境的细节。 在这个页面上,我们将主要使用函数组件。然而,这些测试策略并不依赖于实现细节,它对于 class 组件也同样有效。...React 提供了一个名为 act() 的助手,它确保进行任何断言之前,与这些“单元”相关的所有更新都已处理并应用于 DOM: act(() => { // 渲染组件 }); // 进行断言 这有助于使测试运行更接近真实用户使用应用程序时的体验...--- 多渲染器 {#multiple-renderers} 极少数情况下,你可能正在使用多个渲染器的组件运行测试。...例如,你可能正在使用 react-test-renderer 组件运行快照测试,该组件内部使用组件内部的 ReactDOM.render 渲染一些内容。

    4.9K00

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

    Jest 是一个功能丰富的JavaScript测试框架,而React Testing Library 是一种提倡以用户角度编写测试的库,它鼓励测试组件的行为而不是内部实现细节。...fireEvent函数触发组件的事件,比如点击按钮或提交表单。...afterEach钩子可以用于此目的:afterEach(() => { cleanup();});异步测试使用waitFor或async/await处理异步操作,确保组件测试中达到期望状态:it(...(input, { target: { value: 'search term' } });expect(input).toHaveValue('search term');确保组件响应变化测试组件如何响应状态或...选择性运行测试使用--findRelatedTests选项只运行与更改相关的测试,以加快测试速度:npx jest --findRelatedTests使用快照测试对于不经常更改的组件使用快照测试可以节省时间

    16800

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

    之前的两篇教程中,我们学会了如何测试最简单的 React 组件实际开发中,我们的组件经常需要从外部 API 获取数据,并且组件的交互逻辑也往往更复杂。...在这篇教程中,我们将学习如何测试更复杂的组件,包括用 Mock 去编写涉及外部 API 的测试,以及通过 Enzyme 来轻松模拟组件交互 初次尝试 Jest Mock 我们的应用程序通常需要从外部的...打开 TodoList 的测试文件,首先在最前面通过 jest.mock 配置 axios 模块的 Mock(确保要在 import TodoList 之前), Mock 之后,无论测试还是组件使用的都将是...,我们需要更新快照: npm test -- -u 如果你不熟悉 Jest 快照测试,请回看本系列第二篇教程。...本文中,我们研究了如何使用 react-hooks-testing-library[2] 处理它。

    4.8K20

    初尝 Jest 单元测试

    不同于几年前js乱七八糟,模块化都不普遍的时代,目前团队里主流技术栈就是React,以React天生强制组件化的思想来看,写单元测试应该是天时地利了,而Facebook也提供了配套的测试工具(ReactTestUtils...)和测试框架(Jest),所以,看怎么样已有项目快速补充单元测试吧。...直奔相关主题,Jest 官网有一个tab Testing React Apps, 那对React是有特别照顾呀。 Snapshot Testing 所谓snapshot,即快照也。...通常涉及UI的自动化测试,思路是把某一时刻的标准状态拍个快照测试回归的时候进行pixel to pixel的对比。...但JestReact组件快照则不同,其实是把一个组件给序列化成纯文本, 纯文本的比较,这个真是简单又高效呀。

    1.8K80

    初尝 Jest 单元测试

    不同于几年前js乱七八糟,模块化都不普遍的时代,目前团队里主流技术栈就是React,以React天生强制组件化的思想来看,写单元测试应该是天时地利了,而Facebook也提供了配套的测试工具(ReactTestUtils...)和测试框架(Jest),所以,看怎么样已有项目快速补充单元测试吧。...直奔相关主题,Jest 官网有一个tab Testing React Apps, 那对React是有特别照顾呀。 Snapshot Testing 所谓snapshot,即快照也。...通常涉及UI的自动化测试,思路是把某一时刻的标准状态拍个快照测试回归的时候进行pixel to pixel的对比。...但JestReact组件快照则不同,其实是把一个组件给序列化成纯文本, 纯文本的比较,这个真是简单又高效呀。

    1.6K10

    前端单元测试Jest

    集成测试,也叫组装测试或联合测试单元测试的基础,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。...; 沙箱和快速:Jest虚拟化了JavaScript的环境,能模拟浏览器,并且并行执行; 快照测试Jest能够对React 树进行快照或别的序列化数值快速编写测试,提供快速更新的用户体验; 支持异步代码测试...,并且开发测试期间使用,用于判断某些逻辑条件下会执行某种预期的结果。...Snapshot 快照测试第一次运行的时候会将被测试ui组件不同情况下的渲染结果保存一份快照文件,后面每次再运行快照测试时,都会和第一次的比较,除非执行“yarn test – -u”命令删除快照文件...] = ` 我是react组件 `; 如果被测试代码有正常更新,可以使用jest --updateSnapshot ”命令重新更新缓存文件。

    2.7K20

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

    JavaScript测试教程-part 1:用 Jest 进行单元测试 2. JavaScript测试教程–part 2:引入 Enzyme 并测试 React 组件 3....JavaScript测试教程–part 4:模拟 API 调用和模拟 React 组件交互 本教程的第一篇中,我们简要介绍了单元测试的基础。这次要更进一步,使用 Enzyme 库测试 React。...我们在这里用了 Jest,不过 Enzyme 也可以与 Mocha 和 Chai 之类的库一起使用。 Enzyme 基础 Enzyme 是一个库,用于测试时处理你的 React 组件。...总结 本文中我们已经了解了使用 Enzyme 测试 React 组件的基本知识。我们已经介绍了安装 Enzyme 并运行第一个简单测试使用的渲染类型称为“浅渲染”。...之所以这样称呼,是因为它不渲染任何子组件。在编写单元测试时,它工作得很好。本教程的后续部分中,我将介绍其他类型的渲染,并学习如何测试程序的不同部分。它将包括快照测试和模拟数据之类的技术。下次见!

    1.4K50

    2020 年你应该知道的 React

    至少,您可以使用 React-test-renderer Jest 测试中渲染 React 组件。这已经足以用 jest 来执行所谓的快照测试了。...快照测试的工作方式如下: 运行测试之后,将创建 React 组件中渲染的 DOM 元素的快照。当您在某个时间点再次运行测试时,将创建另一个快照,用作前一个快照的差异。...如果 diff 不完全相同,则 Jest 将报错,您要么必须接受快照,要么必须更改组件的实现。...最终,您会发现自己使用 Enzyme 或 React Testing Library (这两个都在 Jest 测试环境中使用)来进行更详细的测试功能集。...这两个库使得 HTML 元素呈现组件和模拟事件成为可能。然后,Jest 用于 DOM 节点的断言。

    14.4K40

    Jest来给React完成一次妙不可言的~单元测试

    除非合并,否则将覆盖DOM测试库中的默认设置。 基本,这个函数所做的就是使用ReactDOM呈现组件直接附加到document.body的新创建的div中呈现(或为服务器端呈现提供水合物)。...注意:这个AAA模式并不特定于测试库。事实,它甚至是任何测试用例的一般结构。我在这里向您展示这个是因为我发现测试如何方便地每个部分中编写测试是一件很有趣的事情。...src/test 目录下存放了所有单元测试相关的文件。让我们清空这个文件夹,再将下面的示例依次手过一遍。?(CV也是可以的?) 1.如何创建测试快照 快照,顾名思义,允许我们保存给定组件快照。...接下来,我们可以使用 render 呈现App组件,并从方法中获取 asFragment 作为返回值。最后,确保App组件的片段与快照匹配。...结语 React Testing Library 是用于测试 React 应用的一大利器。它为我们提供了访问 jest-dom 匹配器的机会,以及最佳实践,使得我们可以使用它来更有效地测试我们的组件

    14.9K33

    实战 | 初尝 Jest 单元测试

    )和测试框架(Jest),所以,看怎么样已有项目快速补充单元测试吧。...直奔相关主题,Jest 官网有一个tab Testing React Apps, 那对React是有特别照顾呀。 Snapshot Testing 所谓snapshot,即快照也。...通常涉及UI的自动化测试,思路是把某一时刻的标准状态拍个快照测试回归的时候进行pixel to pixel的对比。...但JestReact组件快照则不同,其实是把一个组件给序列化成纯文本, 纯文本的比较,这个真是简单又高效呀。...,或者通过--config 参数指定配置文件: 仅仅使用toMatchSnapshot()的情况下,分支测试覆盖率达到80%以上了,而有一些代码还没有覆盖到,其实是因为组件内部有交互行为,比如说onClick

    93210
    领券