开玩笑“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”会导致“超出最大调用堆栈大小” 的相关文章

  • Heroku 上重启后 Better-SQLite3 数据库重置

    我有一个 Discord 机器人better sqlite3 https github com JoshuaWise better sqlite3硬币和 XP 数据库 直到两周前它一直工作得很好 现在 每次重新启动后 它只会恢复 XP 和硬
  • 动态添加jinja模板

    我有一个 jinja 模板 它是一组 div 标签内的唯一内容 div include temppage html div 当我按下按钮时 我想用其他内容替换标签之间的所有内容 我希望用另一个 jinja 模板 include realpa
  • ELEMENT.style.color 在 IE 中不起作用

    在一个小型 Web 应用程序中 我使用 JavaScript 在文本框中设置一些文本及其颜色 在下面的片段中 el 是我的对象 这段代码在 Firefox Opera 和 Safari 下产生了正确的效果 但在 IE 下却没有这样的运气 我
  • 如何设置黄瓜环境变量

    我有以下 package json name newcucumber version 1 0 0 main index js scripts test node modules bin cucumber js firefox node mo
  • 如何在运行“go test”时排除或跳过特定目录[重复]

    这个问题在这里已经有答案了 go test go list grep v vendor coverprofile testCoverage txt 我正在使用上述命令来测试文件 但有 1 个名为 Store 的文件夹我想从测试中排除 怎样才
  • 确定用户是否在shadow dom之外单击

    我正在尝试实现一个下拉菜单 您可以单击外部将其关闭 下拉列表是自定义日期输入的一部分 并且封装在输入的影子 DOM 内 我想写一些类似的东西 window addEventListener mousedown function evt if
  • Node.js 循环发送 http 请求

    我实际上遇到了使用 node js 执行的 javascript 代码的问题 我需要循环发送http请求到远程服务器 我在代码中设置了www google ca 这是我的代码 var http require http var option
  • 如何在正则表达式中区分数字和ip地址?

    例如 如果我们查看 5 56 和 183 55 0 144 基本上 当你做这样的事情时 d d 它匹配 5 56 189 55 和 0 144 有没有办法通过正则表达式仅匹配数字而不匹配 ip 地址的部分 我尝试使用前瞻 但我不知道它应该是
  • 如何在React中处理多个路由器

    假设我们有一个网络应用程序 它通常有很多视图 例如索引页面 管理面板 帮助页面 联系人等 我在主index js 中使用react router dom 来处理它们 它工作得很好 但是现在我在开发管理面板时遇到了问题 它是 index js
  • Puppeteer 无法在 VPS (DigitalOcean) 上工作

    我在水滴中数字海洋 https www digitalocean com 我收到这个错误 node 5549 UnhandledPromiseRejectionWarning TimeoutError Navigation Timeout
  • 如何比较两个对象数组并更改两个数组中找到的对象的值?

    假设我有两个对象数组 let array1 id 1 name snow id 4 name jo id 8 name bran id 12 name gondo id 13 name peter
  • 从数据库中给定时间起经过的时间

    我有一个 HTML 表 其中包含从数据库中提取的记录 我正在使用 PHP MySQL 我的表中名为 Timer 的列未从数据库中检索 我需要在此处显示经过的时间 从数据库中的特定时间开始 例如 假设现在的时间是2013年2月21日下午6点2
  • 调用axios成功后如何更新页面?反应

    所以我正在做一个使用的项目Axios with Json server 但我有一个问题 每次我做Patch 我必须在主页上按 F5 才能更新 我想知道如何才能做到这一点 这样它就不会自动发生 My Patch onSubmitDate ev
  • jqPlot DateAxis tickInterval 不起作用

    我试图每月绘制一个包含单个数据点的图表 我会在每个月的第一天将其作为一个点发送到 jqPlot jqplot actualChart 2011 10 01 0 296 2011 11 01 0 682 title programSelect
  • 如何在调试器模式下运行 perl 测试?

    我尝试在调试器下运行测试 perl d which prove t file t 但这没有任何效果 因为每个测试都是作为单独的作业运行的 我已经发现 exec选项 但是当我提供它时 我失去了任何选项 proverc文件和命令行 prove
  • 访问事件处理程序内的对象实例

    我有以下代码 var myObj inputs document getElementsByTagName input attachKeyEvent function for var i 0 i lt this inputs length
  • 使用 Lodash 循环 JavaScript 对象中的属性

    是否可以循环访问 JavaScript 对象中的属性 例如 我有一个 JavaScript 对象定义如下 myObject options property1 value 1 property2 value 2 属性将动态添加到该对象 有没
  • 如何使用 Ajax 对 Oracle APEX 表格表单执行逐行验证?

    使用我执行的相同验证 处理 基于此线程 在 Oracle APEX v4 2 2 中通过 Ajax 调用 Oracle 函数进行现场验证 https stackoverflow com questions 21474303 calling
  • 您最喜欢的 JS/CSS 下拉菜单是什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 希望在网站上实现一个 只是好奇其他人都使用过什么以及他们有过什么样的体验 EDIT我也不是一个超级粉丝
  • 具有值的 TextInput 不会更改值

    在我的react native应用程序中 我有一个API 我从中检索数据 并且我在输入值中设置数据 用户应该能够编辑这些输入并更新 但是当我尝试输入输入时它不会输入任何内容并且值保持原样 这是 TextInput 代码

随机推荐

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

    继这个问题之后 当你真的搞砸了分布式系统的设计时该怎么办 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 错误消失了 我在多个组件上都发生过这种情况 这是一个例子 我的项目是使