问题标签 [chai-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 投票
1 回答
894 浏览

reactjs - 如何断言具有多个标签的 React 组件具有带有给定 href的标签

我正在尝试为 React 组件编写mocha测试。基本上,组件需要呈现一个 <a> 标签,其 href 设置为传入的属性中的一个值。问题是组件可以以不可预知的顺序呈现多个 <a> 标签,并且只有一个标签必须有正确的href。

我正在使用酵素柴酶

以下是我真实代码的精简版,但没有一个测试通过:

0 投票
4 回答
26485 浏览

reactjs - 用酶模拟“更改”后复选框未“选中”

我尝试使用酶来模拟change复选框上的事件,并使用chai-enzyme它来断言它是否已被选中。

这是我的Hello反应组件:

我的测试:

当我运行这个测试时,checkbox.get(0).checkedisfalse和断言checkbox.should.be.checked()报告错误:

您可以看到该消息很奇怪,因为checked="checked"输出中已经存在。

我不确定哪里错了,因为它涉及的东西太多了。

您还可以在此处查看演示项目:https ://github.com/js-demos/react-enzyme-simulate-checkbox-events-demo ,注意这些行

0 投票
2 回答
21053 浏览

javascript - 测试对 React 组件状态的更改并使用酶监视实例方法

我正在开发一个包装器组件,用于在 React 中顺利加载图像。我将酶与 mocha、chai 和 sinon 一起使用来对我的组件进行单元测试。在这里的测试中,我试图测试:

  1. 加载图像时更新组件的状态

  2. 组件上的onLoad实例方法被调用

我发现无论是对状态的更新都没有反映在酶上,也没有更新onLoad间谍的调用计数。这是测试的相应代码:

查看完整代码以获得更好的上下文:

0 投票
1 回答
110 浏览

reactjs - Enzyme Shallow() 返回一个不能正确使用选择器的元素

我希望这可以工作,但它没有:

我得到了假,虽然我期待它返回真。
使用mount()而不是shallow()返回true

为什么?谢谢!

0 投票
1 回答
1186 浏览

reactjs - 如何使用 React+enzyme 测试子组件不存在

假设我有一个组件,它有一个控制按钮是否显示的道具。我正在添加以下测试以确保始终观察到道具。

我的问题是:有没有更好的方法来测试组件中不存在某些东西?

我正在寻找更详细的内容。有没有其他类似的链条.to.not.exist

0 投票
1 回答
637 浏览

reactjs - 使用 mocha、chai、chai-enzyme 和 react-create-app

我正在为我的反应应用程序使用react-create-app 样板,它很棒。但我对 jest 测试框架的工作方式不太满意,我想使用 mocha、chai、chai-enzyme。

如何将测试框架更改为上述堆栈?

谢谢。

0 投票
1 回答
602 浏览

webpack - 如何在 Karma 中跨包应用 Chai 插件?

我正在使用 Karma + Mocha + Chai + Webpack 运行测试。我想在我的测试中应用多个 Chai 插件。我正在使用下面的 Karma 配置,它将我的测试分成多个包。

我尝试使用karma-chai创建一个全局chai实例,然后加载将插件应用到全局实例的代码。(见CHAI_CONFIG_PATHplugins.config.js):

应用 chai 插件:

香草 Webpack 配置:

这一直有效,直到我添加chai-enzyme. config/chai/plugins.config.js在它自己的包中运行,它会加载enzyme. 我的测试在另一个包中运行,该包enzyme再次加载。两个enzymes不一样。在每个断言上chai-enzyme运行,但为假。wrap(myShallowWrapper)el instanceof ShallowWrapper

我想将捆绑包分开以使开发测试更容易。我发现的唯一解决方法是在每个测试文件的顶部导入plugins.config.js,但这似乎很棘手。有没有可以让我将 Chai 插件应用到每个包的配置?

0 投票
0 回答
108 浏览

reactjs - 摩卡和酶 - 相同的测试第二次失败

我正在尝试使用一些 propType 逻辑测试一个 React 组件。该组件应采用myprop应该匹配的道具{value: [anything]}

第一个测试有效,但第二个(完全相同的代码)没有。

知道为什么吗?

编辑:我认为 React 不是console.error()每次都调用,而是只调用一次。可能是为了避免向控制台发送垃圾邮件......

0 投票
1 回答
1533 浏览

javascript - 使用酶、sinon 测试反应组件内部加载的图像

我正在尝试测试是否正在为我的组件内的图像调用函数回调。

这是组件:

我的测试挂载了组件,然后监视回调函数:

测试失败是因为内部Img标签从不调用它的onloadnoronerror方法。在生产中,代码运行良好,可能与测试环境有关。它的likeImg标签不会对url正在设置的内容做出反应。

0 投票
1 回答
1404 浏览

reactjs - JSLint 抛出一个错误 - 期望一个赋值或函数调用,而是看到一个表达式

我正在尝试为组件编写测试用例。测试用例正在通过。但是 JS lint 困扰着我。它抛出一个错误 - :期望一个赋值或函数调用,而是看到一个表达式

错误来了:expect(dummyOutput.find('h1.screen-reader-text')).to.exist;

我完整的测试用例代码如下。任何人都可以在这里帮我解决错误吗?