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

在React-Redux组件的Jest/Enzyme测试中无法获取节点

在React-Redux组件的Jest/Enzyme测试中无法获取节点,可能是由于以下几个原因导致的:

  1. 组件未正确渲染:在进行节点获取之前,确保组件已经正确渲染。可以使用Enzyme的mount方法来渲染组件,并确保组件已经挂载到DOM中。
  2. 异步操作未完成:如果组件中存在异步操作,例如使用了setTimeout或者发起了异步请求,需要在测试中等待异步操作完成后再进行节点获取。可以使用async/await或者Promise来处理异步操作。
  3. 节点选择器不正确:在使用Enzyme的find方法获取节点时,确保选择器是正确的。可以使用CSS选择器、属性选择器或者组件名称来选择节点。
  4. 节点未正确渲染或不存在:如果节点未正确渲染或者不存在,可能是由于组件的渲染逻辑有问题。可以检查组件的渲染代码,确保节点被正确渲染。

如果以上方法仍然无法解决问题,可以尝试使用Enzyme的debug方法来输出组件的当前状态,以便进一步排查问题。

关于React-Redux组件的Jest/Enzyme测试,可以参考腾讯云的云开发文档中的相关章节,该文档提供了详细的测试示例和步骤,以及推荐的腾讯云产品。

腾讯云云开发文档链接:https://cloud.tencent.com/document/product/876/41789

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

相关·内容

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

通过测试手段,确保组件每一个功能都可以正常运行,关注质量,而不是让用户来帮你测试。 在编写单元测试时候,一定会对之前代码反复进行调整,虽然过程比较痛苦,可组件质量,也一点一点提高。...Enzyme 会报错,函数组件无法使用state: ShallowWrapper::state() can only be called on class components 接下来,就需要改写单元测试文件了...除非合并,否则将覆盖DOM测试默认设置。 基本上,这个函数所做就是使用ReactDOM呈现组件直接附加到document.body新创建div呈现(或为服务器端呈现提供水合物)。...触发事件通常会触发应用程序一些更改,因此我们必须执行一些断言来确保这些更改发生。我们测试,这样做一个好方法是确保呈现给用户计数已经更改。...接下来,我们可以使用 render 呈现App组件,并从方法获取 asFragment 作为返回值。最后,确保App组件片段与快照匹配。

14.8K33

年轻时,我不写单元测试

一个多人协作大型项目中,我们开发过程可能经常会面临到这样问题: 哎,这次我没有改动到这里啊,这怎么会有bug呢 哎,怎么新加了个功能原来功能受影响了呢 哎,这里样式为什么乱掉了 当我们被提出这些...这其实也是笔者到现在还不确定问题。(获取集成测试能够解决?...,关于不同测试框架重点,这篇文章就不详细展开了,最终结合我们项目,最终采用了facebookjest+enzyme。...重点将展开以下两种react组件类型测试。 展示型组件测试 展示型组件测试,意思就是要确保每一次修改都是符合预期,这里笔者要着重介绍下jest框架里面的snapshot功能。...但是仔细想想,这其实就违背了我们单元测试初衷,笔者这里也大胆猜测下,jest官方实现这个功能时候,应该也只是想记录下一步一步事件后,当前组件html结构,对比上一次快照,来看功能是否符合预期

85120

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

/src/utils'; // 把遇到计时器挂起,必要时,再使用jest.runOnlyPendingTimers执行掉已经挂起计时器 jest.useFakeTimers(); // 描述块,将多个...() 作用: 把遇到计时器挂起,必要时,再使用jest.runOnlyPendingTimers执行掉已经挂起计时器 这里使用jest.useFakeTimers()目的就是暂停正在执行timer...DOM对象,它不会渲染内部子组件,也无法与子组件互动 [3] render()用于将React组件渲染成静态HTML并分析生成HTML结构 ③ toEqual()和toBe()区别 [1].../enzyme/docs/api/mount.html 通过本文,你应该知道 ① jest.useFakeTimers()作用及何时使用 ② 如何测试function ③ 如何测试ReactComponent...④ mount()/shallow()/render()区别 ⑤ toEqual()和toBe()区别 ⑥ 如何测试DOM节点属性 ⑦ 如何测试React组件实例上属性 ⑧ 如何测试组件

6.1K50

前端自动化测试

: 保证当前组件质量,即当前业务正常使用 新需求下,旧组件如果能满足新需求50%以上功能,应当升级旧组件满足新需求,同时兼容旧业务 除该组件Owner之外第二人,修改组件过程,避免因为对代码不熟悉...,改出BUG 一个组件多个页面复用,修改后测试回归任务重 技术选型 目前前端整体测试框架较为常用有: Jest Mocha Jest 源自Facebook,Jest 一个理念是提供一套完整集成...test,后缀名为xxx.test.js文件,在运行测试时会自动执行,snapshots为自动生成页面快照。...这里可以首先简单看一下,Jest+Enzyme基本语法: JestAPI更多着力于定义测试、断言、mock库 定义测试: describe: 定义一个测试套件(test suite) it: 定义一个测试...first: 返回集合第一个节点 at: 返回集合第n个节点 html: 获取节点HTML结构 text: 获取节点文本 一些用于组件交互方法: simulate: 模拟一个事件 setProps

1.9K20

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

Jest 和 Jasmine 具有非常相似的 API ,所以 Jasmine 中用到工具 Jest 依然可以很自然地使用。...shallow 渲染因为不会创建真实 DOM,所以组件中使用 refs 地方都无法正常获取,如果确实需要使用 refs , 则必须使用 mount。... API层面的一些差异如下 + getDOMNode() 获取DOM节点 + detach() 卸载React组件,相当于 unmountComponentAtNode...shallow 无法模拟事件触发问题在 mount 下就不再是问题。...另外测试 React组件除了 Enzyme 提供操作, Jest 还有很多其他有用特性,比如可以 mock 一个 npm 组件实现,调整 setTimeout 时钟等,真正进行单元测试时,这些工具也是必不可少

9.5K20

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

(() => { console.log('每个测试用例测试完毕后运行'); }); 五、Jest Mock函数 单元测试,有许多对象或函数并不需要真实引用,因此需要mock。...七、Jest 异步测试 Jest单元测试是同步,因此面对异步操作如fetch获取数据,需要进行异步模拟测试。...因为渲染了真实DOM节点,可以用来测试DOM API交互和组件生命周期。 render:静态渲染,渲染为静态HTML字符串,包括子组件,不能访问生命周期,不能模拟交互。...,携程持续集成流程再接入sonar, 可以查看完整单元测试报告。...携程租车前端单元测试实践,我们总结出几个要点: 将待测试组件当成黑盒,不用考虑内部逻辑实现; UI改动频繁,优先保证公用组件,工具函数,核心代码单元测试; 模拟数据尽量真实; 多考虑边界条件情况

6K30

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

在上一篇教程,我们已经介绍了使用 Enzyme 测试 React 组件基本知识。...测试组件 Props 在前一篇文章,我们已经测试了传递 Props 给组件情况。但实际上,我们可以直接测试 Props。...:子组件 Task 将根本不会渲染,因此就无法判断是否渲染出正确内容。...测试与 DOM 交互或者处理高阶组件时,mount 函数也可以派上用场。_Mount 使用 DOM 实现模拟,Jest 默认使用是 jsdom。...除此之外,我们还介绍了 Jest 快照测试,这是一个非常强大工具,可以追踪组件渲染方式变化。接下来文章,我们还将介绍测试中常见 Mock 技巧——与组件模拟交互,不见不散!

2.1K20

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

在这一系列实战教程,我们将手把手带你掌握 JestEnzyme、Cypress 等测试利器,帮助我们从 bug 沼泽挣脱出来,成为一个无往不利高阶前端开发者!...测试更复杂组件 实际前端开发,我们组件要复杂很多。本着循序渐进原则,我们稍微前进一步:来编写一个接受 props 组件,并根据数据来决定渲染结果。...配置 jest-enzyme 你应该还记得,刚才测试代码,我们还是使用了 Jest 自带 Matcher(toEqual)。...我们通过 npm 来安装 jest-enzyme: npm install jest-enzyme 相应地 src/setupTests.js 添加相应配置: // src/setupTests.js...,我们使用了 toContainReact 这个 Matcher,它含义十分明显,一目了然;在后面的测试用例,我们通过 todoList.find('li') 来获取 li 元素数组,并判断它长度是否符合要求

2.9K10

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

之前两篇教程,我们学会了如何去测试最简单 React 组件实际开发,我们组件经常需要从外部 API 获取数据,并且组件交互逻辑也往往更复杂。...在这篇教程,我们将学习如何测试更复杂组件,包括用 Mock 去编写涉及外部 API 测试,以及通过 Enzyme 来轻松模拟组件交互 初次尝试 Jest Mock 我们应用程序通常需要从外部...”, componentDidMount 生命周期函数通过 axios 模块异步获取数据。...打开 TodoList 测试文件,首先在最前面通过 jest.mock 配置 axios 模块 Mock(确保要在 import TodoList 之前), Mock 之后,无论测试还是组件中使用都将是...按 ⌘+↩ 退出 不幸是,上述测试无法正常进行。

4.8K20

Unit Testing

#配置单元测试 #安装 Jest 我们使用 yarn 来安装 Jest 包 yarn add -D jest package.json 文件中加入测试命令 { "scripts": {..."test": "jest" } } 之后只需要在 Command Line 输入 yarn test 即可开启测试 #配置时遇到麻烦 我配置 Jest 时遇到了几个麻烦,让我测试代码运行不起来...文件夹下文件和代码 无法识别 css scss 等样式文件 我们组件当中大部分都会有 css 或者 scss 等文件,但是 Jest无法处理这类文件,此时需要将此类样式文件都 Mock 掉 {...-16' Enzyme.configure({ adapter: new Adapter() }) 其他配置可以参考官网配置文档来进行进一步配置 #如何做好单元测试 #一个好单元测试应该遵循下面三个步骤...表格,建议是 100% 覆盖率 #参考 Jest React 测试技巧 React 单元测试策略及落地 单元测试-维基百科

1.3K20

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

Jest 是一款轻量 JavaScript 测试框架,它卖点是简单好用,由 facebook 出品。本文就简单讲讲如何使用 Jest 对 React 组件进行测试。 为什么需要单元测试?...单元测试(Unit Testing),指的是对程序模块(最小单位)进行检查和验证。比如一个函数、一个类、一个组件,它们都是模块。 使用单元测试优点: 更好地交付高质量代码。...注释和文档容易忘记修改,但测试用例描述永远是准确,因为不对就无法通过测试; 可测试性好代码,往往可维护性更好。...但 Jest 本身并不支持 React 组件测试 API,需要使用另外一个内置 React Testing Library 库来测试 React 组件。...官方只支持到 React 16,Enzyme 已死: https://dev.to/wojtekmaj/enzyme-is-dead-now-what-ekl 使用 Jest 测试 React 组件

2.8K20

JavaScript测试教程–part 4:模拟 API 调用和模拟 React 组件交互

JavaScript测试教程-part 1:用 Jest 进行单元测试 2. JavaScript测试教程–part 2:引入 Enzyme测试 React 组件 3....('axios'),Jest 测试组件中都用我们模拟代替了 axios。...有关其功能完整列表,请阅读文档。我们测试检查组件渲染和运行之后是否从模拟调用 get函数,并成功执行。...之前文章,我们提到了阅读组件状态或属性,但这是实际与之交互时。...从测试返回 promise 是能够确保 Jest 等待其解决一种方法。 总结 本文中,我们介绍了模拟模块,并将其用于伪造 API 调用。由于没有发出实际请求要求,我们测试可以更可靠、更快。

3.7K10

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

笔者今年 5 月份参加 Vueconf 时候,Vue 单元测试主题演讲者曾向现场参与者发出提问,有多少团队引入了单元测试,意外是只有寥寥数人举起了手。...单元测试:是指对软件最小可测试单元进行检查和验证,通常指的是独立测试单个函数。 UI 测试:是对图形交互界面的测试。 集成测试:就是测试应用不同模块如何集成,如何一起工作,这和它名字一致。...函数组件 下面简单看一个加减菜组件测试(精简了一部分逻辑)。...因为目前我们项目大多属于敏捷开发,UI 样式改动或者功能性需求较多,时间上也无法允许我们做到更好测试覆盖。...原有逻辑增加新功能时,通过运行之前测试,能够大大提高迭代质量和稳定性。 这篇文章主要总结了笔者 React 项目中书写测试经验与沉淀,而对于 Vue 项目,暂时还没有深入研究。

5.3K30

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

JavaScript测试教程–part 4:模拟 API 调用和模拟 React 组件交互 本教程第一篇,我们简要介绍了单元测试基础。这次要更进一步,使用 Enzyme测试 React。...Enzyme 基础 Enzyme 是一个库,用于测试时处理你 React 组件。它由 Airbnb 开发。 设置 Enzyme 继续上一篇文章内容,假设你 Jest 已经能够工作了。...第一个测试,我们使用了 toContainReact 函数,这是一个自定义匹配器函数。它是 enzyme-matchers 库一部分。...第二个测试,我们组件上调用了 find 函数。这要归功于 shallow 函数返回 ShallowWrapper,它是渲染输出包装器。它有一组可供调用函数。...之所以这样称呼,是因为它不渲染任何子组件。在编写单元测试时,它工作得很好。本教程后续部分,我将介绍其他类型渲染,并学习如何测试程序不同部分。它将包括快照测试和模拟数据之类技术。下次见!

1.4K50

React单元测试Jest + Enzyme(二)

前言 在上一篇教程,我们成功搭建了基于JestEnzyme单元测试框架并成功地跑起来第一个单元测试,可以点击这里回顾一下。今天,我们重点讨论如何通过Jest来mock数据。...什么是Mock Mock简单翻译就是模拟。既可以模拟数据,也可以模拟行为。在上一篇文章,就用到了mock功能来忽略对多媒体文件和字体文件等请求: "jest": { ....../api/data文件夹: 单测实例 假设有以下组件加载时候会发送api请求获取数据: import React, {PureComponent} from 'react' import dataApi...这里,我们使用了enzymemout方法来渲染组件,这个方法会执行组件对应生命周期方法。在上面的例子,componentDidMount方法里就包含了请求api方法。...总结 通过上面的步骤,就可以写出一个简单模拟网络请求单元测试了。更多Jest+enzyne用法,请期待下一期文章

1.4K20

使用storybook管理React组件

测试UI组件 4.1 写测试用例原因 找到bug 新修改没有改变已有的接口和功能 将测试用例作为文档 4.2 测试结构 使用storyshots插件来实现,其核心是使用Jest,原理是每次生成一份DOM...结构文档(类似于html源码),可以无痛集成到组件测试。...配置好scripts:"test": "jest"),测试完成后会在storyshots.test.js生成一个stories/index.js对应DOM快照。...4.3 测试交互 storybook交互性测试可以使用 Enzyme来模拟用户输入,然后使用Mocha or Jest来进行结果测试,storybook又一个专门插件帮助我们集成他们:specifications...4.4 测试样式 样式测试这里采用Puppeteer 和Jest来实现,其原理是利用Puppeteer无头chrome浏览器和storybookurl绑定组件特点,来渲染不同UI组件,再进行图片快照对比

3.3K20

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

确保代码没有bug一种方法就是编写测试用例。测试React hooks与测试一般程序方式没有太大区别。 本教程,我们将了解如何通过使用带有hooksto-do应用程序来实现这一点。...如果你第一次使用Enzyme,我们之前发布过关于它文章,《Enzyme如何在React应用Jest一起使用》。我们可以用他们来深入测试React Hooks。...npm install --save-dev enzyme enzyme-adapter-16 src目录,创建一个名为setupTests.js文件。...我们使用断言,进一步模拟单击事件之前,输入“修复失败测试”,该事件应该将新项目添加到待办事项列表。 最后,断言列表中有三个项,并且第三个项与我们创建项相等。...因为我们只想删除一个项目,所以我们对集合第一个项目触发一个click事件,它应该删除第一个待办事项。这应该使待办事项子节点长度等于1。 这些测试也可以GitHub上找到。

4K30

使用 Jest 进行前端单元测试

例如下面这段典型前端业务代码,涉及到网络请求、DOM操作等多个步骤,不在浏览器环境无法直接执行。 ....Timer 业务代码如果有 setTimeout 这样计时器,测试过程如果真实去执行,可能会严重拖慢整个测试项目的执行时间,设想一个功能有 n 个用例去测试,延时就会被重复 n 倍。...除此之外 Jest 也可以结合 enzyme 更好 React 项目中进行测试enzyme 是 airbnb 开源一个 React 测试工具,通过 Shallow Rendering 实现对...React 生成组件节点进行断言和测试)。...Jest ,不同测试文件是分开独立执行,如果担心各种 mock 和 unmock 不同测试用例之间造成冲突,可以按照分类把用例分开放到不同文件内。

5.5K90

对 React 组件进行单元测试

无论是代码初始搭建过程,还是之后难以避免重构和修正bug过程,常常会陷入逻辑难以梳理、无法掌握全局关联境地。...一般使用 Enzyme mount 或 shallow 方法,将目标组件转化为一个 ReactWrapper对象,并在测试调用其各种方法: import Enzyme,{ mount } from...明确指定 PropTypes 对于一些之前定义并不清晰组件,可以统一引入 prop-types,明确组件可接收props;一方面可以开发/编译过程随时发现错误,另外也可以团队其他成员引用组件时形成一个明晰列表...; }); ... }); 调用组件“私有”方法 对于一些组件,如果希望测试阶段调用到其一些内部方法,又不想对原组件改动过大,可以用instance()取得组件类实例...,难免碰到一些需要远程请求数据情况,比如组件获取初始化数据、提交变化数据等。

4.2K40

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

单元测试工具 - Jest & Enzyme Jest - Facebook Jest 是 Facebook 开源 Javascript 测试框架,提供了许多好用 API,先介绍下主要优点: 自带...( vuejs 测试可以用 vue-test-utils) Enzyme 提供了可以直接操作 React component props 和s tate 方法,使得建造测试 context...当 snapshot 结果需要升级更新时, 只需要执行 jest -u 指令即可更新之前生成 snapshot 结果。 为什么 Snapshot React 测试是可靠呢?...实际应用时,我们用了 jest shallow 方法来生成测试组件wrapper; 用 enzyme-to-json/serializer 这个 lib 把生成 shallowWrapper 转化成...最近 enzyme 版本更新后, shallowWrapper component lifecycle 函数也会被正确调用。因此对组件状态测试是比较容易

3.2K21
领券