开玩笑“toMatchSnapshot”会导致“超出最大调用堆栈大小”

2024-03-22

我正在尝试测试组件上的快照,但收到错误RangeError: Maximum call stack size exceeded,虽然当我删除toMatchSnapshot,错误消失了。我在多个组件上都发生过这种情况,这是一个例子。

我的项目是使用 Create React App 创建的,并使用 Jest + Enzyme

堆栈调用

FAIL  src/components/Dashboard/Pipeline/Pipeline.test.js
  ● Pipeline Component › Pipeline Item › should render

    RangeError: Maximum call stack size exceeded

      at Object.it (src/components/Dashboard/Pipeline/Pipeline.test.js:20:181)
          at new Promise (<anonymous>)
      at Promise.resolve.then.el (node_modules/p-map/index.js:46:16)
          at <anonymous>
      at process._tickCallback (internal/process/next_tick.js:188:7)

这是我要测试的组件

import React from 'react';
import PropTypes from 'prop-types';
import { Circle } from 'rc-progress';
import Color from 'color';
import './PipelineItem.css';

const PipelineItem = ({ role, color, count, total, value }) => (
  <div className="pipeline">
    <span className="role" style={{ borderColor: color }}>
      {role}
    </span>
    <div className="progress">
      <Circle
        percent={count / total * 100}
        gapDegree={70}
        gapPosition="bottom"
        strokeWidth="6"
        strokeLinecap="square"
        strokeColor={color}
      />
      <div className="completed">
        <span className="count">
          {count} / {total}
        </span>
      </div>
    </div>
    <div className="value" style={{ backgroundColor: Color(color).fade(0.85) }}>
      <div className="wrap" style={{ borderColor: color }}>
        <span className="title">Value</span>
        <span className="value">${value}</span>
      </div>
    </div>
  </div>
);

PipelineItem.defaultProps = {
  value: 0,
  total: 0,
  count: 0,
};

PipelineItem.propTypes = {
  role: PropTypes.string,
  color: PropTypes.string,
  count: PropTypes.number,
  total: PropTypes.number,
  value: PropTypes.number
};

export default PipelineItem;

这是测试

import React from 'react';
import Pipeline from './Pipeline';
import PipelineItem from './PipelineItem';

describe('Pipeline Component', () => {
  describe('Pipeline Wrap', () => {
    it('should render', () => {
      expect(shallow(<Pipeline />)).toMatchSnapshot();
    });
  });
  describe('Pipeline Item', () => {
    const props = {
      role: 'Loan Officer',
      color: '#2ae',
      count: 100,
      total: 150,
      value: 15000
    };
    it('should render', () => {
      expect(shallow(<PipelineItem {...props}/>)).toMatchSnapshot();
    });
  });
});

第一次测试运行良好


经过几个小时的寻找+删除线条后,我发现它是color引起问题的here https://github.com/Qix-/color/pull/134然而这是因为旧笑话的错误 https://github.com/facebook/jest/issues/4956.

鉴于我正在使用 Create React App,他们尚未更新到包含修复程序的 Jest 22(自 v22.0.4 起)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开玩笑“toMatchSnapshot”会导致“超出最大调用堆栈大小” 的相关文章

  • 在javascript中使用“return !0”有什么意义吗?

    如果您转到谷歌结果页面并运行rwt toString 你会看到这个函数的返回调用是 return 0 我想不出任何理由为什么这不会总是如此true 这只是一个简写吗true 还是还有更多事情发生 总是如此 但下载需要 2 个字节 0是 2
  • 零作为 IIFE 中的第一个参数[重复]

    这个问题在这里已经有答案了 In babeljs v6 5 1 class Foo 编译为 use strict var classCallCheck2 require babel runtime helpers classCallChec
  • Three.js - 在代码中包含网格数据

    我有这个 Three js 代码 其中 JSON 加载器从文件 models mountain json 加载网格 var Three new function this scene new THREE Scene this camera
  • 是否可以覆盖 javaScript 原始数据类型?

    问题是不言自明的 我知道可以扩展原始数据类型 例如string但有可能覆盖它吗 这是在采访中被问到的一个问题 不 你不能覆盖任何东西 Ecma脚本定义原始类型 http es5 github com x4 3 2 Undefined Nul
  • 点击问题:动态生成的链接不触发点击功能

    下面是两个代码片段 由于某种原因什么也没有发生 但来自同一个 JS 文件的其他 jQuery 函数在带有 UL 的页面上执行得很好 这是在盯着我看吗 ul class paganation li 1 li li a href 2 a li
  • OnClick 触发另一个按钮单击事件

    由于某种原因 在我的代码中onClick活动为disableAccount每当我单击取消按钮时 按钮就会被激活 所以取消设置isEditMode为假但是disableAccount将其设置回 true 从而防止我在 UI 中看到任何明显的变
  • ReactJS:从没有 onChange 事件的 props 中选择默认值?

    所以 我只是想知道我是否绝对需要在 React 中的选择组件上有一个 onChange 事件处理程序 我有一个道具传递我想要选择的选项的默认值 如果我有的话 它就没有问题
  • 空 URL 哈希导致页面在 js 事件上跳转

    我有一个带有下一个和上一个按钮的照片库 如果我的某个 javascript 方法由于某种原因被破坏 那么当单击其中一个按钮时 它会向 url 添加一个哈希值 即 www google com 我知道可以给散列一个 div id 来跳转到页面
  • 对象数组 - 在 Vue.js 生态系统中更新对象的正确方法

    我不确定问题到底出在哪里 但我会看看是否有人可以帮助我理解我的代码出了什么问题 我正在利用 Vuex 商店来跟踪某些不断变化的状态 我这样做如下 import Vue from vue import Vuex from vuex Vue u
  • setInterval 内的返回值

    我想在 setInterval 内返回一个值 我只想以一定的时间间隔执行一些操作 这就是我尝试过的 function git limit var i 0 var git setInterval function console log i
  • 使用 JavaScript 的计时器

    我想使用java脚本实现计时器 我想随着间隔的变化而减少计时器 Example假设我的计时器从 500 开始 我想要根据级别减少计时器 例如1 一级定时器应减1 且递减速度应较慢 2 2级定时器应递减2 递减速度应为中等3 3级定时器应减3
  • Postman - 如何计算 JSON 响应中特定对象的出现次数

    我是 JSON 和 Postman 的新手 我相信我正在尝试做一些非常简单的事情 我创建了一个 GET 请求 它将获得如下所示的 JSON 响应 在下面的例子中我想得到count响应中所有 IsArchived 属性 这些属性的数量因响应而
  • 理论上防止 WebSocket 中第一个收到的消息丢失

    服务器端代码发送消息立即地连接打开后 它向客户端发送初始配置 问候语 以下代码是在客户端 var sock new WebSocket url sock addEventListener error processError sock ad
  • RTCDataChannel发送方法不发送数据

    我的 RTCDataChannel 遇到一个奇怪的问题 我正在对 WebRTC 进行一些研究 并且已经可以进行 WebRTC 音频 视频聊天 现在我想使用 RTCDataChannel 添加文本聊天和文件共享 我已经像这样创建了 RTCDa
  • ThreeJS无法加载Json文件

    首先 我已经读过这个问题 https stackoverflow com questions 17201888 three js exporter export object not working with jsonloader r58没
  • 使用 jQuery Tablesorter 操作后如何恢复当前页面?

    我正在使用 tablesorter 但无法找到有关插件 tablesorter 寻呼机的任何文档 问题是我有一个显示一些数据的表 并且在每一行中都有一个删除链接 该链接附加了要删除的元素的唯一标识符 显然 是否可以保存我正在删除的页面 然后
  • 从 Firebase 实时数据库 + 存储加载图像

    我正在使用 Firebase 文档 react redux firebase 中的 create react app 创建类似汽车图片库的东西 图像信息存储在 Firebase 实时数据库中 但实际图像文件存储在 Firebase 存储中
  • Dojo/on 和捕获阶段

    有没有办法用 dojo on 在捕获阶段 而不是冒泡阶段 触发事件 我最终在这里寻找有关 on 的前身 dojo connect 的信息 就其价值而言 dojo connect 似乎不支持捕获阶段的事件侦听器 它的工作原理是将事件处理程序作
  • 使用 React React-router 登录后重定向到主页,并且 usenavigate 不起作用?

    我希望用户在成功登录后重定向到主页 我将用户登录的 api 请求的数据存储在一个名为 currentUser 的变量中 因此如果 currentUser 为 true 它应该重定向到主页 这就是我处理登录请求的方式 export const
  • 使用 Lodash 将对象键转换为具有键值数量的数组[重复]

    这个问题在这里已经有答案了 我有一个产品对象 products bread 1 milk 2 cheese 2 chicken 1 我想要一个包含产品名称的数组 如下所示 products bread milk milk cheese ch

随机推荐

  • 分解集中式数据库最经济有效的方法是什么?

    继这个问题之后 当你真的搞砸了分布式系统的设计时该怎么办 https stackoverflow com questions 2355910 what to do when youve really screwed up the desig
  • 如何使用 torch.stack?

    我该如何使用torch stack将两个张量与形状堆叠a shape 2 3 4 and b shape 2 3 没有就地操作 堆叠需要相同数量的维度 一种方法是松开并堆叠 例如 a size 2 3 4 b size 2 3 b torc
  • 类文件的最佳大小是多少?

    我知道类文件没有单一的 理想 大小 但仍然 是否有任何关于类文件的最佳大小的数据 如研究 而不是意见 我想说 最佳大小足以让该类完成其工作
  • HTML / CSS 视频结束事件问题 [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在设计一个网站 我已经完成了所有工作 但我无法弄清楚最后一步 这是交易 我想播放视频 但我希望它的 z 索引覆盖整个网站索引页
  • 如何使用 d3.js 以编程方式触发拖动事件?

    我编写了一些对 svg 元素使用拖动事件的代码 该代码运行良好 我想为其编写一些测试 我不想手动移动鼠标 而是想以编程方式触发dragstart and drag事件与选择 调度 https github com d3 d3 selecti
  • VHDL - FSM 未启动(仅在时序仿真中)

    我正在写我的硕士论文 而且我对 VHDL 还很陌生 但我仍然必须实现一些复杂的东西 这是我必须编写的最简单的结构之一 但我仍然遇到了一些问题 它是一个 FSM 采用低电平有效同步信号 用于对 DAC 进行编程 实现 24 位移位寄存器 这只
  • 在 jqgrid 中动态将 rownumbers 设置为 false

    我喜欢使用以下命令在网格中显示行号rownumbers财产 但如果只返回一行 有没有办法设置rownumbers动态为 false 为什么 乍一看 在没有标题的列中看到 1 有点令人困惑 但如果有多行 那么您很快就会意识到该列的用途 你可以
  • 通过 DOM、insertAdjacentHTML 或 document.write 将 SCRIPT 添加到 IFRAME

    我需要将 SCRIPT 添加到沙盒 IFRAME 中 并且我试图避免使用document write see here https stackoverflow com questions 4537963 what are alternati
  • 如何删除使用 Uri 创建的文件?

    我的应用程序从相机拍摄照片并将其保存在一个文件中 该文件的 Uri 存储在 SQL 数据库中 使用数据库中的 Uri 初始化位图可以完美地工作 但是 当我尝试使用数据库中的 Uri 初始化文件 然后使用删除时imagefile delete
  • 使用 Ansible“lineinfile”模块编辑 /etc/sudoers 是否安全?

    我想根据以下内容更改 sudo 会话超时this https superuser com a 149740 775166回答 我可以编辑普通文件 lineinfile path etc sudoers regexp Defaults env
  • 将 ggplot 中的背景部分更改为不同的颜色[重复]

    这个问题在这里已经有答案了 使用以下数据框d day lt gl 8 1 24 labels c Mon Tues Wed Thurs Fri Sat Sun Avg day lt factor day level c Mon Tues W
  • 使用POSTMAN时不会出现CORS问题

    我已经使用 POSTMAN 发送一段时间了HTTP requests like GET POST PUT用于 RESTful Web 服务 最近遇到一种情况 当通过浏览器向我的 REST API 发送请求时 我收到一条消息 请求的资源上不存
  • 如何在django中检查多对多字段的类型?

    如何检查 django 中多对多字段的类型 我想这样做 import django field class django db models fields related ManyRelatedManager 这是行不通的 因为类ManyR
  • DynamoDBMapper 负载与查询

    DynamoDBMapper 提供了从表中读取一项的不同方法 query load 有推荐吗 该使用哪一个 在快速测试中 以下两个代码片段对于主键 哈希和范围键 日期的表返回相同的 MyEntry 项 而查询方法大约快 10 load pu
  • Spring-Core-WS 与 Spring 4.3.0 不兼容,是吗?

    我总是尝试在我的 Spring 项目中使用最新的 jars api 我们有一个 Spring 4 2 4 RELEASE 然后我升级到 4 3 0 一切都构建和编译得很好 但是 当我尝试运行单元测试时 我收到一条错误消息 我确实追踪到 Sp
  • 在 Wpf 应用程序中查看 Byte[] Pdf

    你好 我在 Byte 中找到了一些 pdf 文件 我正在寻找一种在 WPF 应用程序中查看它们的方法 我已经看过了http hugeonion com 2009 04 06 displaying a pdf file within a wp
  • 将 .hide() 和 .show() 与 Google Visualization 结合使用

    我用谷歌可视化创建了一个折线图 我已经测试过它并且它按预期工作 问题是 当我在可视化上使用 hide 启动页面 然后单击按钮显示它时 它不会显示可视化 这是我所拥有的内容的精简版本
  • 如何解压缩字节数组中的 gzip 数据?

    我有一个类 它有一个接收对象作为参数的方法 该方法通过 RMI 调用 public RMIClass extends Serializable public RMIMethod MyFile file do stuff MyFile 有一个
  • 如何在两个不同的选项卡上显示相同的控件?

    我正在使用VB NET 我需要在两个不同的选项卡上显示相同的控件 ListBox 是否必须创建 2 个不同的 ListBox 实例 如果您不需要设计时支持 您可以简单地在运行时将 ListBox 实例的父级从一个选项卡更改为另一个选项卡 当
  • 开玩笑“toMatchSnapshot”会导致“超出最大调用堆栈大小”

    我正在尝试测试组件上的快照 但收到错误RangeError Maximum call stack size exceeded 虽然当我删除toMatchSnapshot 错误消失了 我在多个组件上都发生过这种情况 这是一个例子 我的项目是使