问题标签 [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 投票
2 回答
487 浏览

javascript - 使用 Enzyme 进行 Meteor/React Mocha 测试 - 找不到模块“有”

如前所述,我正在使用 React 运行 Meteor 应用程序,并开始使用 Mocha 编写测试。目前我有一个基本测试,什么都不测试。

客户/前景/ProspectForm.tests.jsx

当我启动我的测试服务器时,我收到以下错误

错误

找不到模块“有”。看起来问题源于酶,但是当我创建一个新的流星应用程序并添加酶和实用流星:摩卡,然后添加相同的测试它工作正常,所以它必须与我在这个应用程序上的环境有关。

这是我的 package.json

这是我的流星包文件

有谁知道这里发生了什么?

0 投票
0 回答
687 浏览

reactjs - 如果没有与组件关联的属性类型,如何在酶测试中测试按钮单击

我正在为 ReactJs 应用程序实现酶测试脚本。在这里,我有一个要测试的登录组件,它没有在 onClick 或 onSubmit 函数上使用任何 proptypes。我已经尝试了很多方法,但还没有找到解决方案。以下是提交部分

在这里,我尝试了各种方法来模拟按钮并始终显示命令 const button = wrapper.find('button'); 的禁用按钮;console.log(button.simulate('click').debug());

expect(spy.callOnce).to.be.true不能用这里来检查它是否发生了。是否有任何解决方案可以使此按钮单击发生。

0 投票
2 回答
1961 浏览

testing - 使用 Mocha 测试 React 中的高阶组件

我在 React 组件中使用HOC ,如下所示:

当使用 Mocha 测试组件时,我试图寻找应该包含在 Component 中的类名。像这样:

问题是 Mocha 不知道在包装器中查找 Component 并尝试在 HOC 中找到它。当然不会。

我收到的错误是:

如何告诉 Mocha 在 HOC 中查找类名的正确位置而不是 HOC 本身?

0 投票
4 回答
25930 浏览

reactjs - 如何模拟反应路由器上下文

我有相当简单的反应组件(如果路由处于活动状态,则添加“活动”类的链接包装器):

我应该如何测试它?我唯一的尝试是:

它不起作用并返回TypeError: Cannot read property 'isActive' of undefined。它肯定需要一些路由器模拟,但我不知道如何编写它。

0 投票
1 回答
1668 浏览

reactjs - 导入酶后加载模块 DomUtils 时出现 Webpack 错误

我有一个带有 TypeScript 和 React 0.14 的项目。

我用 karma/mocha/chai 设置了测试环境。及其工作。但是当我从酶导入和使用函数时,我在浏览器中出现错误(来自 Chrome 的人类可读错误):

DomUtils 错误。 调试模式。

据我了解,使用前未加载模块 227...232(内部 DomUtils 文件)。

也许我忘记了什么?或者有人知道解决方法吗?

对不起,巨大的配置:

网络包配置:

业力配置:

测试文件:

Webpack 导入链:酶 -> ... -> Cheerio -> ... -> DomUtils

StackOverflow 我最后一次解决问题的机会,谷歌不知道答案。

0 投票
0 回答
135 浏览

meteor - 使用酶进行反应/流星测试,道具未加载

我有一个测试只是试图测试反应组件呈现时页面上的内容,它看起来像这样

前景.tests.js

问题是,此时我的集合仍在加载,所以当我控制台记录 html 时,所有酶都会看到:

console.log(item.html())

html

我的组件是:

前景.jsx

所以我的两个问题是:

1)有没有更好的方法来确保加载道具,所以我不必显示“正在加载...”

2)在酶中,有没有一种方法可以在加载道具后重新渲染?我尝试使用 item.update() 但它不起作用,因为没有设置道具。

0 投票
1 回答
1558 浏览

unit-testing - Mocha - 如何在ajax调用后检查元素是否存在

ajax函数更新后如何检查select是否有一些选项。我的选择组件如下所示

这是我的尝试:

这有什么问题,我得到 var actual = 0。它应该是 3。所以我想我错过了 axios 的一些东西。我应该在我的规范中添加什么?

0 投票
0 回答
26 浏览

unit-testing - 监视测试模块中的方法

为了清楚起见,我会为您“绘制”一个情况。

模块 A(相同的 javascript 文件,在我的情况下,它在 ReactJS/Redux 应用程序中的 reducer)包含方法:First、Second

我测试方法 First (在其中调用了 Second - 我想检查它是否已被调用)。所以在伪代码中它看起来像这样:

我遇到的问题是,如果方法 Second 与 First 放在同一个模块(文件)中,它就不起作用(库不检测是否调用了 spy)。如果我将它移动到另一个文件/模块,它工作得很好。

它的设计或我做错了什么?

我用的是 sinon + chai + 酶栈。

0 投票
2 回答
6695 浏览

reactjs - 酶测试:安装与渲染

除了render使用“遍历库 Cheerio”..

我刚刚用mount's替换了我所有的render's,它的工作原理是一样的。
他们看起来和我很像。

我应该选择什么?这两者的API在某种程度上是不相同的吗?
什么时候使用renderover有什么特别的建议mount

0 投票
2 回答
20116 浏览

material-ui - 如何将上下文传递给 Enzyme mount 方法以测试包含 Material UI 组件的组件?

我正在尝试使用mountEnzyme 来测试我的组件,其中嵌套了几个 Material UI 组件。运行测试时出现此错误:

TypeError: Cannot read property 'prepareStyles' of undefined

经过一番挖掘,我确实发现需要在 context 中传递一个主题。我在测试中这样做,但仍然出现此错误。

我的测试:

我的搜索栏组件是一个无状态组件,所以我没有在任何上下文中拉扯。但即使我在,我仍然会遇到同样的错误。

我究竟做错了什么?