问题标签 [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 回答
799 浏览

reactjs - Expect method to have been called is not fulfilled on "onInput" for a contentEditable element

I have a component that uses contentEditable as an input method. The part from the component that is of interest is:

The component works fine - it gets into the textChanged method on user input. The method looks like this:

The problem I'm facing appears when I try to test the input behavior. The setup is done with enzyme, chai, sinon. I'm rendering the component using a simple renderComponent function, using enzyme's mount method.

It outputs expected textChanged to have been called at least once, but it was never called. The weird part is, however, if I put a console.log inside the component's method, it gets there.

What I've tried to make it work

  • use sinon.stub instead of spy, as I though that maybe something in my method doesn't work properly
  • call it with view.find('.user-input').simulate('input', {target: {value: "lorem"}) or .simulate('input', {key: 'a'})

If instead of simulating the input I do a viewReact.textChanged(), it obviously works.

I'm guessing that it's the input method on contentEditable that's causing this. Any suggestions? How can I properly enter text in the onInput method? (even if it gets in the textChanged method, the text is empty)

0 投票
2 回答
612 浏览

reactjs - AirBnB 的酶测试(用于 React 组件)返回 SyntaxError

我有一个酶测试,它直接来自某处的教程:

我不断收到语法错误,意外标记:

有任何想法吗?我在 package.json 文件中安装并配置了所有这些模块:

我在 Windows 上运行 npm test:

*****编辑******

这是我的组件文件:

这是我的测试文件:

错误是:

我试过浅,渲染和安装。我在这里想念什么?我正在使用最新的 React 15 版本。事实上所有最新的模块 - 只是做了一个 npm 安装。我一定错过了如何使用这个库的基本理解。请帮忙!

0 投票
1 回答
757 浏览

reactjs - 使用 Enzyme 在 React.JS 上测试关键事件

我一直在尝试将关键事件与酶测试实用程序一起使用,但没有成功。我试过了

但似乎没有一个工作。有谁知道用酶模拟关键事件的正确语法?

0 投票
1 回答
4207 浏览

reactjs - SyntaxError:使用酶运行摩卡时出现意外的保留字

使用 mocha 运行酶测试。我收到错误

(function (exports, require, module, __filename, __dirname) { import React from ^^^^^^

SyntaxError:意外的保留字

我的测试文件中有以下给出的测试脚本

我试图用require替换import,但没有用。如果有人伸出援助之手来解决这个问题,那就太好了。

编辑 我包括下面的 package.json 文件,

0 投票
8 回答
36872 浏览

reactjs - 在 Enzyme 中测试 input.focus()

我如何测试input.focus()酶。我正在编写带有反应的脚本。我的代码如下:

0 投票
4 回答
8626 浏览

javascript - 带有 React Native 的 Enzyme 的 shallow().text() 并没有像我预期的那样工作

我试图对带有react-native-mock 的React Native 测试有一些基本的了解。

不包括在下面:mocha 的自定义编译器,以获得 babel 的好处。

我的代码如下:

Block.jsx

Block.test.js

试验结果

摩卡命令:

摩卡测试结果:

意外行为

  1. props()似乎获得了正确的值,但格式与 api 描述的格式不同
  2. text()不呈现节点textContent,而是呈现字符串化标签“ <View />

替代方案:props().children

给定组件:

props().children是数组[<Text component instance>, "Something"]

所以下面的测试通过了:

问题

为什么酶 API 的行为与文档中描述的不同?

具体查看文档应该shallow(<Block title="Something" />).text()等于:The title...Something

我做错了什么,还是我正在使用的技术之一?

编辑1:其他问题

html(), render(),update()似乎也不适用于我的设置

编辑:React Native 目前仅适用shallow

0 投票
6 回答
29727 浏览

javascript - 如何使用反应酶检查实际的 DOM 节点

有没有办法获取实际的 DOM 节点,所以我可以使用 Dom api 查询它,而不是需要使用酶的 api,它只是用于边缘情况,例如我需要断言关于 dom 节点本身的事情。

0 投票
0 回答
258 浏览

javascript - 酶类型错误:无法使用“in”运算符在未定义中搜索“phoneUtils”

这里我使用Enzyme工具 来测试一个用 ReactJs 编写的 web 应用程序。我有这个工作,每当我尝试为我的应用程序运行测试时,我都会收到错误响应

/app/js/services/countries/lib/libphonenumber.js:1 (function (exports, require, module, __filename, __dirname) { "use strict";(function(){var aa=this;function l(a, b){var c=a.split("."),d=aa;c[0] in d||!d.execScript||d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());){c.length||void 0===b?d[e]?d=d[e]:d=d[e]={} :d[e]=b;}}函数 m(a,b){函数 c(){}c.prototype=b.prototype;ao=b.prototype;a.prototype=new c();a.prototype .constructor=a;a.$=function(a,c,f){for(var g=Array(arguments.length-2),h=2;hc?Math.max(0,a.length+c) :c;if("string"==typeof a)return "string"==typeof b&&1==b.length?a.indexOf(b,c):-1;for(;cb?1:a

并遵循

在我的测试脚本中,我没有使用任何名为phoneUtils的参数,也找不到传递的变量或值。由于我是酶工具的新手,而 ReactJs 并不知道这里到底发生了什么。如果有人伸出援助之手,那就太好了。

0 投票
6 回答
20497 浏览

reactjs - 在 React 和 Redux 中使用 Enzyme 进行嵌套组件测试

我有一个SampleComponent安装另一个“连接组件”(即container)的组件。当我尝试SampleComponent通过mounting 进行测试时(因为我需要componentDidMount),我得到了错误:

不变违规:在“Connect(ContainerComponent)”的上下文或道具中找不到“store”。要么将根组件包装在 a 中,要么将“store”作为道具显式传递给“Connect(ContainerComponent)”。

测试这个的最好方法是什么?

0 投票
1 回答
4490 浏览

reactjs - 如何测试 React 组件的属性和功能?

我已经尝试了一切enzyme,但是,我在下面找不到测试这些属性的正确方法。请记住,这个组件被包裹在一个虚拟Provider组件中,以便我可以传递必要的道具(即Store)向下进行安装。

1)安装后,在实例上设置一个属性(例如this.property

2) 添加了一个事件监听器

3)在事件监听器上,someFunction正在被调用