问题标签 [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.
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 ofspy
, 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)
reactjs - AirBnB 的酶测试(用于 React 组件)返回 SyntaxError
我有一个酶测试,它直接来自某处的教程:
我不断收到语法错误,意外标记:
有任何想法吗?我在 package.json 文件中安装并配置了所有这些模块:
我在 Windows 上运行 npm test:
*****编辑******
这是我的组件文件:
这是我的测试文件:
错误是:
我试过浅,渲染和安装。我在这里想念什么?我正在使用最新的 React 15 版本。事实上所有最新的模块 - 只是做了一个 npm 安装。我一定错过了如何使用这个库的基本理解。请帮忙!
reactjs - 使用 Enzyme 在 React.JS 上测试关键事件
我一直在尝试将关键事件与酶测试实用程序一起使用,但没有成功。我试过了
和
但似乎没有一个工作。有谁知道用酶模拟关键事件的正确语法?
reactjs - SyntaxError:使用酶运行摩卡时出现意外的保留字
使用 mocha 运行酶测试。我收到错误
(function (exports, require, module, __filename, __dirname) { import React from ^^^^^^
SyntaxError:意外的保留字
我的测试文件中有以下给出的测试脚本
我试图用require替换import,但没有用。如果有人伸出援助之手来解决这个问题,那就太好了。
编辑 我包括下面的 package.json 文件,
reactjs - 在 Enzyme 中测试 input.focus()
我如何测试input.focus()
酶。我正在编写带有反应的脚本。我的代码如下:
javascript - 带有 React Native 的 Enzyme 的 shallow().text() 并没有像我预期的那样工作
我试图对带有酶和react-native-mock 的React Native 测试有一些基本的了解。
不包括在下面:mocha 的自定义编译器,以获得 babel 的好处。
我的代码如下:
Block.jsx
:
Block.test.js
试验结果
摩卡命令:
摩卡测试结果:
意外行为
props()
似乎获得了正确的值,但格式与 api 描述的格式不同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
于
javascript - 如何使用反应酶检查实际的 DOM 节点
有没有办法获取实际的 DOM 节点,所以我可以使用 Dom api 查询它,而不是需要使用酶的 api,它只是用于边缘情况,例如我需要断言关于 dom 节点本身的事情。
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 并不知道这里到底发生了什么。如果有人伸出援助之手,那就太好了。
reactjs - 在 React 和 Redux 中使用 Enzyme 进行嵌套组件测试
我有一个SampleComponent
安装另一个“连接组件”(即container
)的组件。当我尝试SampleComponent
通过mount
ing 进行测试时(因为我需要componentDidMount
),我得到了错误:
不变违规:在“Connect(ContainerComponent)”的上下文或道具中找不到“store”。要么将根组件包装在 a 中,要么将“store”作为道具显式传递给“Connect(ContainerComponent)”。
测试这个的最好方法是什么?
reactjs - 如何测试 React 组件的属性和功能?
我已经尝试了一切enzyme
,但是,我在下面找不到测试这些属性的正确方法。请记住,这个组件被包裹在一个虚拟Provider
组件中,以便我可以传递必要的道具(即Store
)向下进行安装。
1)安装后,在实例上设置一个属性(例如this.property
)
2) 添加了一个事件监听器
3)在事件监听器上,someFunction
正在被调用