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

reactjs - jest快照测试嵌套的redux“连接”组件

ReactJS是一个用于构建用户界面的JavaScript库,而Jest是一个用于JavaScript代码测试的开源框架。快照测试是Jest提供的一种测试方法,用于检查组件渲染的输出是否与预期的一致。

在React中,Redux是一种用于管理应用程序状态的可预测状态容器。Redux连接(Redux Connect)是一种将Redux状态与React组件连接起来的方法,使组件能够访问Redux存储中的状态并对其进行操作。

当需要测试嵌套的Redux连接组件时,可以使用Jest的快照测试来确保组件的渲染输出与预期一致。以下是一般的测试步骤:

  1. 安装必要的依赖:npm install react-test-renderer --save-dev
  2. 创建一个测试文件,例如Component.test.js
  3. 在测试文件中导入必要的模块和组件:import React from 'react'; import renderer from 'react-test-renderer'; import { Provider } from 'react-redux'; import configureStore from 'redux-mock-store'; import Component from './Component';
  4. 创建一个模拟的Redux存储和初始状态:const mockStore = configureStore([]); const initialState = { /* 初始状态 */ }; const store = mockStore(initialState);
  5. 编写测试用例并使用快照测试:describe('Component', () => { it('should render correctly', () => { const component = renderer.create( <Provider store={store}> <Component /> </Provider> ); const tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); });

在上述测试中,我们使用react-test-renderer库创建了一个组件的渲染实例,并将其包装在Provider组件中,以便将模拟的Redux存储传递给组件。然后,我们将渲染实例转换为JSON格式,并使用toMatchSnapshot()方法进行快照测试。

这样,每次运行测试时,Jest会将组件的渲染输出与之前保存的快照进行比较,如果不一致,则测试失败。如果测试通过,Jest会自动更新快照文件,以便与新的渲染输出进行比较。

推荐的腾讯云相关产品:无

以上是关于使用Jest进行快照测试嵌套的Redux连接组件的答案。

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

相关·内容

2021年React学习路线图

学习 React 中它是可选,但仍然是一个好用库。 3.2 测试 Jest - 简单 JavaScript 测试框架。 Jest 是一个简单 JavaScript 测试框架,它注重简单性。...编写测试很重要,根据我经验,通常比编写实际代码更难。 您应该学习最流行测试库,如 Jest 和 Enzyme,以及如何使用库(如 Sinon )模拟 API 调用。...还有其他库,比如 React 测试库。 当应用程序变得复杂时,要对单个组件进行良好单元测试以确保正确性,而不是假设它们按预期方式运行。...3.5 小结 Redux/Redux Thunk 测试 React 组件 React 高级概念 自己搭建一个 React 项目 React 源码 3.6 资源推荐 Redux 初学者教程 https:/.../www.valentinog.com/blog/redux/ Jest 速成班 https://www.youtube.com/watch?

7.5K21

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

快照测试:能够创造一个当前组件渲染快照,通过和上次保存快照进行比较,如果两者不匹配说明测试失败。 测试报告:内置了Istanbul,通过一定配置可以测试代码覆盖率,生成测试报告。..."redux-mock-store": "^1.5.3" //Redux测试模拟store } 根目录下添加jest.config.js文件作为配置文件: module.exports...('InteractionManager'); 六、Jest UI快照测试 Jest提供了snapshot快照功能用于UI测试,可以创建组件渲染快照并将其与以前保存快照进行比较,如果两者不匹配,则测试失败...快照将在测试文件的当前文件路径自动生成snapshots文件夹中保存。当主动修改造成ui变化时,使用jest -u来更新快照。..._onClear).toBeCalled();//测试组件实例上方法是否被调用 九、Redux测试 在使用React或者React Native时通常会使用Redux进行状态管理,需要mock store

6K30

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

单元测试实践 组件UI测试 (Snapshot) 传统 Snapshot 测试一般是渲染一个UI组件 -> 截取屏幕快照 -> 和之前屏幕快照对比。...如果对比失败了(两个截图不同),要么是有 bug, 要么需要升级屏幕快照(UI 意料之中更新)。...Jest snapshot 测试不仅可以对比React tree结构区别, 也可以对比其他可序列化区别。 比如对比Redux某个状态state是否和之前相同。...selector 是可嵌套, 但只要正确 mock redux state, 最终结果就应该是唯一。 4. Utils 测试 和普通js函数型单元测试没有区别,就不多赘述了。...这块测试因为需要真正连接到 server 上, 因此可以和其他单元测试分开以提高运行速度。

3.2K21

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

实际上,第一个并不关心按钮是否正确地连接到方法。它只查看实现本身,也就是说,您递增和递减方法执行之后,应用状态是否正确。这就是代码损坏,测试也会通过。...(CV也是可以?) 1.如何创建测试快照 快照,顾名思义,允许我们保存给定组件快照。当您进行更新或重构,并希望获取或比较更改时,它会提供很多帮助。 现在,让我们看一下 App.js 文件快照。...接下来,我们可以使用 render 呈现App组件,并从方法中获取 asFragment 作为返回值。最后,确保App组件片段与快照匹配。...它只是一个由 React Redux 处理基本计数器组件。 现在,让我们来编写单元测试。...结语 React Testing Library 是用于测试 React 应用一大利器。它为我们提供了访问 jest-dom 匹配器机会,以及最佳实践,使得我们可以使用它来更有效地测试我们组件

14.8K33

40道ReactJS 面试问题及答案

:为组件编写测试涉及使用 Jest 和 React 测试库等测试库来确保组件按预期运行。...以下是测试 React 应用程序一些常用方法: 单元测试:使用 Jest测试框架以及 Enzyme 或 React 测试库等工具为各个组件编写单元测试。...这些测试可以单独检查每个组件渲染、行为和状态。 让我们使用 Jest 和 React 测试库为此 Button 组件编写一些单元测试用例。...最后,我们断言使用正确表单数据调用了handleSubmit 函数。 快照测试快照测试是一种捕获组件输出“快照”并将其与先前存储快照进行比较方法。 使用 Jest 创建和维护组件输出快照。...在后续测试运行中,它将当前输出与存储快照进行比较,如果存在任何差异,则测试失败。

20510

「首席架构师推荐」React生态系统大集合

对交互式命令行应用程序进行React react-blessed - 用于祝福终端接口库React渲染器 React测试 jest - 令人愉快JavaScript测试框架 enzyme - 针对...React - React形式 - React中角状React形式 unform - ReactJS表单库,用于创建不受控制表单结构,包含嵌套字段,验证等等!...React Native应用程序,包含或不包含Expo Snowflake - 使用Redux,Parse.com,Jest(88%覆盖率)React原生iOS和Android Ignite - React...redux-thunk - 用于reduxThunk中间件 redux-logger - 用于reduxLogger中间件 reselect - Redux选择器库 normalizr - 根据模式规范化嵌套...入门:测试驱动教程:第2部分 全栈Redux教程 使用Redux和React-Router进行服务器端渲染 Redux深度介绍 单元测试Redux应用程序 使用JWT身份验证保护您React和Redux

12.3K30

年轻时,我不写单元测试

,关于不同测试框架重点,这篇文章就不详细展开了,最终结合我们项目,最终采用了facebookjest+enzyme。...重点将展开以下两种react组件类型测试。 展示型组件测试 展示型组件测试,意思就是要确保每一次修改都是符合预期,这里笔者要着重介绍下jest框架里面的snapshot功能。...shapshot就是会对组件进行一次快照记录当前状态,每一次run jest时候,对比上一次,看看是否有变化。...但是仔细想想,这其实就违背了我们单元测试初衷,笔者这里也大胆猜测下,jest官方在实现这个功能时候,应该也只是想记录下一步一步事件后,当前组件html结构,对比上一次快照,来看功能是否符合预期...一开始我觉得单元测试很鸡肋原因也是没有深入了解它,这次发现就算是和业务结合很紧密组件,也能够模拟正常操作,这里就贴一个和redux结合组件来举例 import React from 'react

85720

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

在这种情况下子组件将根本不会被渲染。所以上面的测试失败了,你需要了解“浅渲染”局限性。 Mount 模拟了 DOM 实现,而 Jest 默认使用 jsdom。...在测试期间,将渲染组件并创建其快照。它包含渲染组件整个结构,应该与测试本身一起提交给存储库。再次运行快照测试时,新快照将与旧进行比较。如果它们不同,则测试将失败。...你还可以在 watch 模式下运行 Jest,这能够允许你一个接一个地更新所有有冲突快照。...官方 Jest 文档【https://jestjs.io/docs/zh/snapshot-testing】中有一个很好动画演示了这个过程。 快照测试可以成为跟踪组件更改非常强大工具。...摘要 在本文中,我们介绍了对组件 props 进行测试过程,并了解了 mount 函数和 浅渲染 之间区别。除此之外,我们还介绍了快照测试,它是跟踪组件渲染方式变化有用工具。

1.7K20

Vue 应用单元测试策略与实践 01 - 前言和目标

Snapshot Testing 快照测试,其实我是很认可快照这种形式,但需要改进其工作流,至少结合 Image Snapshot 和 Storybook 等工具,甚至更应该放到 CI 上去。...`Redux-like` 架构好处 他能够合理测试vuex storemutation和getter中业务逻辑 他能够测试组件如何正确dispatch action以及action中如何做异步操作...### CQRS 与 `Redux-like` 架构 ### 如何对 Vuex 进行单元测试 ### Vue组件和Vuex store交互 ## Vue应用测试策略 ### 单元测试特点及其位置...Jest 经常被炒作功能之一是用户界面的快照测试快照测试可以作为测试金字塔上层一个很好补充,但请记住,单元测试仍然是坚实基础。...## CQRS 与 Redux-like 架构 ### 如何对 Vuex 进行单元测试 ### Vue组件和Vuex store交互 ## Vue 应用测试策略 ### 单元测试特点及其位置 ###

86940

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

正如官方介绍所说,Jest是一款开箱即用测试框架,其中包含了Expect断言接口、Mock接口、Snapshot快照测试覆盖率统计等等全套测试功能。 为什么不推荐Mocha?...合理使用Snapshot Jest snapshot(快照)原本是用来测试React 虚拟vdom结构,利用expect(value).toMatchSnapshot([快照名称])将复杂vdome...更新快照功能坏处就是它操作太简单了,简单到让人麻痹,让人懒惰,让人容易忽略快照更新前后差异对比,将错误测试结果作为正确快照提交上库。...所以推荐大家用.toMatchSnapshot([快照名称])给快照设置命名,在差异对比就能一眼看出是哪句测试代码出问题了,也不会有维护问题。 React组件如何覆盖测试?...注意,如果redux状态组件测试时,要先初始化store和触发redux事件后,再渲染React组件: test("init", () => { let store = initStore(combineReducers

4.9K40

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

入门快速指南 为什么要使用 Redux Toolkit JavaScript 测试教程 Linux 命令行世界生存指南 大家好,我是童欧巴。...“一次编写组件,到处运行”,意味着我们可以用它来创造一个跨多个框架 UI 组件库,以更高抽象级别编写组件,实现在不同框架之间轻松迁移。...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

1.1K20

React+Redux仿Web追书神器

中间件引人日志中间件 —— redux-logger,异步 API 调用 —— redux-thunk 等; component-module 和 components 存放都是 react 组件,区别是...:容器组件就放在components中,和模块组件(比如左侧菜单组件、书籍列表组件等)就放到 component-module中; 页面状态等公共部分最好是独立起来,统一管理; 跨域配置使用 pathRewrite...,另一个是追书神器h5移动端 数据跨域:网上查了不少方法,考虑到便捷,使用反向代理方式处理 学习 Redux 刚开始我差不多用一个星期多学习了 Github 上 从零开始学 ReactJSReactJS...接着是用了 5-6 天学习网上开源项目的脚手架 —— 一个 react + redux 完整项目 和 个人总结,基本上是看 参考所使用库、编译打包脚本以及 redux 代码。...测试及优化 现在项目代码是没有进行单元测试,后续学习集成JEST测试 优化部分页面的组件以及一些 bugs

1.6K80

React + Redux Testing Library 单元测试

单元测试基础 测试框架 - Jest Fast 天下武功,唯快不破。 Opinionated 开箱即用。 Watch Mode 守护模式。 Snapshot Testing 快照测试。...,但只会渲染出组件第一层 DOM 结构,其嵌套组件不会被渲染出来,从而使得渲染效率更高,单元测试速度也会更快。...}); React 组件Redux store 交互 前面我们讲完了 Redux 单元测试所需要基本知识,而 React 组件需要从 Redux store 读取状态或者是发送 action...接下来就来聊聊如何用 React Test Utils 测试 React 组件 Redux。...,其实我们在测试 React 组件(单元)时候不需要关心 Redux store 长什么样子,我们只需要知道 Redux store 当中这些 action 将会在适当时机触发,以及它们触发时预期行为是什么

2.3K10

2022 年 React 生态

它允许你管理应用程序全局状态,任何连接到其全局存储 React 组件都可以读取和修改这些状态。 如果你碰巧在用 Redux,你一定也应该查看 Redux Toolkit。...你可以使用 react-test-renderer 在你 Jest 测试中渲染 React 组件。...这已经足以使用 Jest 执行所谓 Snapshot Tests 了:一旦运行测试,就会创建 React 组件中渲染 DOM 元素快照。...当你在某个时间点再次运行测试时,将创建另一个快照,这个快照会和前一个快照进行 diff。如果存在差异,Jest 将发出警告,你要么接受这个快照,要么更改一下组件实现。...最近 React Testing Library (RTL) 也比较流行(在 Jest 测试环境中使用),它可以为 React 提供更精细测试

5.7K20

2020 年你应该知道 React 库

React 测试 如果您想深入了解 React 中测试,请阅读以下内容: How to test components in React。要点如下: 测试 React 应用程序主干是 Jest。...至少,您可以使用 React-test-renderer 在 Jest 测试中渲染 React 组件。这已经足以用 jest 来执行所谓快照测试了。...快照测试工作方式如下: 运行测试之后,将创建 React 组件中渲染 DOM 元素快照。当您在某个时间点再次运行测试时,将创建另一个快照,用作前一个快照差异。...如果 diff 不完全相同,则 Jest 将报错,您要么必须接受快照,要么必须更改组件实现。...最终,您会发现自己在使用 Enzyme 或 React Testing Library (这两个都在 Jest 测试环境中使用)来进行更详细测试功能集。

14.4K40

前端架构思考,Vue or React?领域设计、文件结构、数据管理、主题替换

vue 将很多业务常见场景(嵌套路由、受保护页面、导航守卫、路由切换动画、滚动条复位)都在 vuex 和 router 中实现了,开箱即用 Why 主要是为了避免出现以下这些问题 一个文件千八百行,...: 复用比较多业务组件 components: 纯粹组件,不含一丝一毫业务逻辑 每个页面下 components,到了这个类别下,已经是圈定了指定页面,所以除了 props,还可以有 model...相比较 redux 来说,unstated-next size 更小,使用起来更简单 相比较 context 来说,它本身就还是 hook,封装在自定义 hook,或者其他地方,都不是一种很好实现...单元测试覆盖 单测写法,使用 jest + testing-library + mm 来进行 mock 以及断言 最好可以在 CI/CD 上配置增量代码覆盖率是要求在多少,每个 mr 都不能拉低单测覆盖率...()).toMatchSnapshot(); }) 推荐一些学习单测网站 jest: zh-hans.reactjs.org/docs/testin…[3] testing-library: rualc.com

28830

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

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

4.8K20

聊一聊 2024 年 React 生态系统

Zustand 允许管理全局应用状态,任何与 Zustand 存储连接 React 组件都可以读取和修改这些状态。...Jest 提供了测试运行器、断言库以及其他实用功能,满足全面测试框架需求。如果倾向于使用 Vite,Vitest 是一个值得考虑 Jest 替代方案。...在测试框架中渲染 React 组件时,可以使用 react-test-renderer。这足以进行所谓快照测试,这是通过 Jest 或 Vitest 进行。...快照测试工作方式如下:一旦运行测试,会为 React 组件渲染DOM元素创建快照。在未来某个时间点再次运行测试时,将创建另一个快照,并使用它与前一个快照进行比较。...如果差异不匹配,测试框架会发出警告,可以选择接受快照或调整组件。 随着时间推移,你可能会发现自己在测试框架环境中使用React Testing Library(RTL)。

74910
领券