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

reactjs - 诗乃嘲笑this.refs

当前对包含 this.refs [ data ] 的函数进行单元测试。由于我只能进行浅层渲染,所以我一直不确定。我试图通过这样做来嘲笑诗意

但我相信因为该函数正在执行 this.refs 而不是 refs 它不起作用。关于如何模拟 this.refs 的任何想法?

编辑:

它在叫什么:

我收到以下错误。当我挖掘堆栈跟踪时,它的 this.refs 导致它:

0 投票
0 回答
397 浏览

javascript - “SyntaxError: Unexpected token <”,使用 mocha 和酶测试 ReactJS

我正在使用 Mocha、Enzyme、Shallow 渲染并希望测试 ReactJS。我没有使用 babel 和 ES6。我在 Stack Overflow 上查看了其他问题,但没有人回答我的问题。

我正在使用带有 commonJS 和 Grunt 的 ES5 将 JSX 编译为 JS 并将 app.built.js 文件加载到 html 文件中,并且它都可以正常加载到页面上。

这是我的代码speedoApp.jsx

这是中的代码App.js

我的 HTML 文件:

我的测试文件speedoSpec.js

我在运行 mocha 时收到错误消息:

我也尝试过要求将文件app.built.js替换为.speedoApp.jsxspeedoSpec.js

有人知道我哪里出错了吗?

0 投票
0 回答
304 浏览

reactjs - 酶测试 - 没有为子组件分配道具值

我是 reactjs 和酶工具的新手,为 reactjs 应用程序实施单元测试。每当我传递父组件中子组件的道具值时,这些值似乎并不像分配给子组件的必填字段。但是当我直接对孩子做同样的事情时,它就起作用了。以下是子组件的渲染部分

以及下面给出的父组件的渲染函数

其实这里我是在测试登录操作。由于我对 reactjs 和酶都是新手,因此不知道我是否以正确的方式进行操作。以下是我的示例测试片段

如果有人伸出援助之手来解决这里的问题,那就太好了。

0 投票
2 回答
2866 浏览

reactjs - sinon 存根不替换反应组件中的功能

我正在尝试使用 Enzyme + Sinon 测试对反应组件的点击

我的 Comp 组件有一个引发异常的保存函数

当我运行测试时,我希望不会抛出任何错误,并且存根中的空函数会触发 - 但事实并非如此。组件内部的实际函数被触发,而不是空存根。

0 投票
0 回答
338 浏览

reactjs - 无法模拟动作按钮点击反应酶

我正在为 ReactJs 应用程序运行mocha +测试。在调试时,我得到以下信息:

每当我尝试模拟单击操作时,它都会返回 false。

我在这里附上我的测试脚本:

我是酶和reactjs的新手,所以不知道我是否正确。感谢所有帮助。

0 投票
2 回答
628 浏览

reactjs - 将上下文传递给 ReactJS 中动态添加的子项

我正在尝试将上下文传递给 React 组件,但是因为我正在使用 Enzyme 进行测试,所以我想动态地将组件添加到它的父组件中,以便我可以检查它的状态。测试看起来像这样:

测试失败是因为组件状态的persistent属性是,尽管它应该通过上下文继承。BeaconundefinedBeaconConfig

当我在挂载时尝试Beacon直接放入 JSX 中时,BeaconConfig它工作正常,但在这种情况下,Enzyme 不会让我进入Beacon组件状态,因为它不是根。

当我将它动态添加到其父组件时,React 没有将上下文传播到我的组件是否正常?

0 投票
0 回答
1479 浏览

reactjs - 我可以测试一个css类是由一个使用酶的模拟事件添加的吗?

我使用 react 为drop 库创建了一个非常简单的包装器,我正在尝试使用对其进行测试。

放置库基本上使用“放置目标”和“放置内容”元素,这样当某些鼠标事件发生在“目标”上时,它会显示“内容”。它通过向目标添加一个 css 类来实现这一点,该目标与 css 转换机制一起使用以显示内容。

所以......我试图测试的是当一些鼠标事件发生时,一些css类被添加到一些元素中。

这是组件本身:

这是测试(使用摩卡、柴和酶):

最后一条expect语句是false因为预期的重要类 ( drop-enabled) 没有出现在“放置目标”上。

可以在此处找到整个 github 存储库以供参考

谁能提供有关如何使用酶正确进行此测试的任何指导?

0 投票
1 回答
497 浏览

webpack - Mocha 没有通过 webpack 2 运行单元测试

我在运行 Mocha、Expect 和 Enzyme 时遇到问题。首先,我通过 babel 编译我的 webpack 配置文件。下面是我得到的错误的附加屏幕截图,并且测试文件是有效的。有人有类似的问题吗?

巴巴巴巴德

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
0 回答
769 浏览

unit-testing - 用子组件反应测试组件

我最近开始使用 React 开发组件,现在事情开始看起来不错,我想使用 Mocha 和 Enzyme 来测试它们。

这是我的提议/问题/要求回答:

我有一个 Fieldset 组件,其中包含一个“标题”道具和我使用 {this.props.children) 传递的其他组件(几个字段组件),如下所示:

零件:

利用:

测试:

我已经做了一些测试,例如

问题:

1) 将组件用作其他组件的道具,如 "input={ [TextInput title="blabla"] } 是一种好习惯吗?

2) 如何在我的 Test 中测试 {this.props.children} 的行为?

a:我是否应该使用类似的东西而不用担心节点太多,除非确保它等于我的节点变量的内容?

b:我是否应该使用模拟道具等导入其他组件(在本例中为 Field 组件)(就像真正使用带有子组件的组件)并使用它来测试 Fieldset 组件?出于此 Fieldset 测试的目的,我不会脱离上下文吗?

感谢您帮助我找出测试组件的最佳方法。

0 投票
1 回答
3765 浏览

reactjs - Material-UI + Enzyme:浅渲染组件?

我正在努力将我的应用程序更新到最新版本的 React、Enzyme 和 Material-UI。

我知道在版本 15 中,Material-UI 删除了如果没有给出默认主题组件将创建的默认主题组件。现在首选的方法是使用具有MuiThemeProvider我们想要使用的样式的组件来包装整个应用程序。这可以毫无障碍地工作,但是我的测试现在不应该中断。

任何使用 Material-UI 组件并且我调用的组件ShallowWrapper.html()现在都会使我的测试失败并显示以下消息:TypeError: Cannot read property 'prepareStyles' of undefined

请注意,如果我不使用ShallowWrapper.html(),我不会收到任何错误。所以只有当我需要查看它失败的 HTML 输出时。这是有道理的,Material-UI 应该只在实际渲染某些东西时才关心样式。

我创建了一个非常简单的测试用例来展示我是如何做到的:

我认为简单地包装我的组件应该可以工作。显然,我在某处遗漏了一步。谁能指出我正确的方向?