问题标签 [enzyme]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4283 浏览

javascript - 如何测试在设置 React 组件状态的 componentDidMount 中进行的异步调用

测试异步调用componentDidMount是否为 React 组件设置状态的最佳方法是什么?对于上下文,我用于测试的库是MochaChaiEnzymeSinon.

这是一个示例代码:

0 投票
1 回答
1683 浏览

reactjs - 如何在酶中为反应组件设置对象类型道具值?

我尝试了两种方法,

1.

2.

但是两个道具仍然未定义

0 投票
3 回答
5052 浏览

javascript - ReactJS & Enzyme:将元素内容与字符串匹配

我在 React.js 中有一个简单的 Intro 组件,它呈现一个 h1 和一个 p。

我正在尝试使用 Enzyme 为通过的 h1 & p 字符串编写测试,但我无法做到这一点。这段代码有什么问题?

如果我控制台记录wrapper.find('p').text()它不是未定义的......但控制台说这样的:

0 投票
0 回答
2308 浏览

testing - this.props.children.map 在用酶测试反应组件时不是一个函数

我有一个 React 组件,它也使用它的子组件this.props.children

到目前为止,这在浏览器中效果很好,但是当我想使用酶对其进行测试时,我得到了一个奇怪的错误。这是测试:

当我想执行该测试时,我收到以下错误消息:

我试图用mountand来做到这一点shallow,尽管我当然更喜欢shallow。但是这两个功能都没有按我的预期工作。因为mount我也在使用 jsdom,setup.js测试中包含以下脚本:

和想法我做错了什么?

更新:

当我console.log(this.props.children)在代码中添加 a 时,我在测试中得到以下结构:

0 投票
1 回答
2011 浏览

reactjs - 如何将外部库加载到 jsdom 以测试带有酶全渲染的 reactjs 模块

我有一个使用谷歌地图的反应模块,所以它需要谷歌在执行测试之前将 javascript 加载到 DOM 中。如何将这些外部库加载到 jsdom 中?

0 投票
0 回答
1225 浏览

javascript - Enzyme React setTimeout 相关测试导致错误

我想测试是否在使用酶和 sinon-mocha 的 React 组件中的某个时间间隔后调用方法。

反应组件

单元测试

错误

它抛出断言错误。测试在计时事件中崩溃,这是我使用包装器节点上的一些控制台日志确定的。它说堆栈跟踪错误。但是,测试用例触发了myFunc,这从控制台日志中可以明显看出。

如何捕获myFunc通话?有谁知道为什么会这样?

控制台错误与此https://github.com/sinonjs/sinon/issues/87#issuecomment-8547823相同

更新

堆栈跟踪:

0 投票
1 回答
4332 浏览

reactjs - 浅渲染使用 Refs 的 React/Enzyme 组件

我有一个用 Enzyme 测试的 React 组件,例如,它看起来像这样:

我正在使用 Mocha/Chai/Enzyme 编写一些单元测试,我想模拟按钮按下以检查我的 props func 是否被调用。

我的基本酶测试如下所示:

有什么方法可以调整测试或我的组件代码以避免this.button在点击处理程序中访问时出错?我得到“TypeError:无法读取未定义的属性'classList'”。

我想把它作为一个浅渲染单元测试,不想用 mount 深度渲染这个组件,这需要使用类似浏览器的环境,比如 jsdom。

谢谢。

0 投票
1 回答
188 浏览

meteor - 如何在测试 React 组件时传递 FlowRouter 上下文

我正在测试一个有 5 个链接的反应组件。每个链接都根据当前路由变为活动状态。我正在使用带有 Mantra 和酶的 Meteor 来测试这些组件。

页脚组件:

测试

但是当我运行时npm test,它说FlowRouter is not defined.如何在测试中将 FlowRouter 上下文传递给反应组件?提前致谢

0 投票
1 回答
3557 浏览

unit-testing - 酶:无状态功能组件返回未定义的道具

我有一个使用 Enzyme 浅层渲染测试的 SFC。我将带有内联样式的样式对象作为道具传递给这个无状态组件。但是,当我对其应用单元测试时,它返回未定义。我不确定这是否可以,因为我知道这个组件只是返回作为道具传递给它的任何东西,并且没有任何东西被传递/渲染,它给了我未定义的东西。有什么解决方法吗?

测试:

0 投票
2 回答
966 浏览

unit-testing - 酶:BrowserHistory 函数测试失败

我对单元测试相当陌生。我正在使用 react+redux 并且我已经创建了一个NotFound页面/组件并且我正在编写它的单元测试。我需要测试一个失败的 onClick 事件。

404.jsx

测试.js

即使这样,它也会给我一个错误Cannot read property 'goBack' of undefined

先感谢您。