问题标签 [reactjs-testutils]

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 投票
3 回答
22445 浏览

reactjs - 为什么在 dispatchEvent 上不调用 React 事件处理程序?

考虑 React 组件中的以下输入元素:

在测试 React 组件时,我正在模拟用户更改输入值:

正如预期的那样,这会导致'onChange'被记录。

但是,当'change'事件被直接分派时(我使用的是 jsdom):

处理onChange程序没有被调用。

为什么?

我使用dispatchEvent而不是的动机TestUtils.Simulate是因为TestUtils.Simulate不支持事件冒泡,而我的组件的行为依赖于此。我想知道是否有办法在没有 的情况下测试事件TestUtils.Simulate

0 投票
0 回答
775 浏览

reactjs - 测试反应组件componentDidMount,每次测试后如何渲染到新文档中?

测试运行,但它们呈现到同一个文档中。在 componentDidMount 上,样式组件将 CSS 文本附加到带有类的 head 中的样式元素.reactive-style(知道这是非正统的,而不是特殊的 React)。如果.reactive-style尚不存在,则创建样式元素并将其添加到头部。明智的测试——为了简单起见——我需要为每个测试用例渲染一个新文档。

测试如下所示:

当前输出显示 head 中目标样式元素的 innerHTML 随着每个测试的增长(不需要,每个测试用例都需要新文档):

看看第二个测试如何包含第一个测试的结果?目标是通过渲染到新文档来避免这种情况。

已经尝试了几件事,例如.reactive-style通过将元素的 innerHTML 清空,document.head.querySelector('.reactive-style').innerHTML = '';但是当expect()运行时styleNode.textContent显示为空,因此不起作用(可能是因为expect()正在运行异步并且innerHTML同步清除)。干杯并感谢您的任何帮助。

0 投票
1 回答
1090 浏览

reactjs - 假服务器响应正文应该是字符串,但未定义

我正在尝试使用 mocha、chai 和 sinon 对 react 组件进行单元测试。

我的第一个测试成功了,它很简单地检查组件是否存在以及是否正确使用了道具。

现在我在测试中遇到了 ajax 问题。

这是我的代码:

我收到此错误消息:

怎么了?

提前致谢

0 投票
3 回答
70 浏览

reactjs - React 组件测试一直失败

在测试我的 TodoList 组件时,我不断收到此错误:

debug.html:38
Invariant Violation:
元素类型无效:
期望字符串(用于内置组件)或类/函数(用于复合组件)但得到:对象。

我不确定是什么原因造成的。谁能引导我走向正确的方向?

TodoList.js:

TodoList.test.js:

链接到源代码:链接到源代码

0 投票
14 回答
51545 浏览

reactjs - 测试 React Select 组件

https://github.com/JedWatson/react-select

我想使用 React-Select 反应组件,但我需要添加测试。

我已经尝试了几个在谷歌上找到的选项,但似乎没有任何效果。我有下面的代码,但它不会导致更改事件。我已经能够添加一个焦点事件,它添加了 'is-focussed' 类,但仍然缺少 'is-open' 类。

我用过:https ://github.com/JedWatson/react-select/blob/master/test/Select-test.js作为参考

我曾尝试仅在输入字段上使用更改事件,但这也无济于事。我注意到有一个onInputChange={this.change}选择。

测试

被测组件

命令行 要运行测试,我会:

在 package.js 我有这个脚本:

测试设置

和 browser.js 是:

我也尝试过使用此处概述的测​​试方法:https ://github.com/StephenGrider/ReduxSimpleStarter

任何帮助将不胜感激

0 投票
1 回答
1033 浏览

javascript - Reactjs 测试 api 调用

我想开发usign Reactjs,我制作了一个应用程序,我在其中调用了一个api(https://jsonplaceholder.typicode.com/users),我也对此调用进行了测试,但我无法调用这个api。

我在 .Net 中做了一个小 WebApi 项目,这个 WebApi 有一个端点,它返回一个具有这种简单结构的 json {{person:1},{person:2}}:。我使用邮递员和 Visual 中的断点测试了这个端点,它工作正常。

现在我想使用React的测试套件(我不知道它是否是测试套件,mpn测试),来调用这个端点但是测试没有调用端点,因为视觉中的断点没有激活,不知道Reactjs测试能不能调用Apis。

这是文件:

0 投票
1 回答
1063 浏览

reactjs - 反应组件测试找不到文本

我正在为我创建的特定组件编写测试用例。组件在这里

这个组件的测试用例在这里:

我正在尝试测试isSearchedisfalseactiveTab设置为的情况one-way。我已经传入了适当的道具,并将日志语句放入组件中以验证是否正在执行正确的 if/else 块,但我一直收到错误消息:

有人可以指导我或为此提供见解吗?

0 投票
1 回答
1298 浏览

unit-testing - React.js 和 Jasmine 间谍

使用基本的 test-utils 和 jasmine 进行单元测试。

你如何监视 React 组件中的函数?

测试.js:

我收到以下错误:

有任何想法吗?谢谢!

0 投票
1 回答
532 浏览

reactjs - React 测试:在组件中查找组件

我可以在下面的代码中的第一个“查找器”中找到一个组件

如果我然后使用返回的 Component 对象并使用它来找到更深的对象,如下所示:

我收到此错误:

不变量违规:findAllInRenderedTree(...):实例必须是不变量的复合组件 (node_modules/fbjs/lib/invariant.js:44:15)

我无法弄清楚findRenderedDOMComponentWithClass返回的类型是什么,因为 (a) Javascript 和 (b) ReactTestUtils几乎没有任何文档

我的整个测试看起来像这样:

0 投票
1 回答
907 浏览

javascript - 在 Chrome 中使用 Karma 测试 React 组件时内存/cpu 使用率非常高

目前在我的项目中,我正在使用 Karma 和 Mocha,以及 React Test-Utils 来测试我的反应组件。

我目前有大约 1200 个测试,其中大部分是针对我的反应组件库的。

运行这些测试时,chrome 的内存经常超过 2gb,其 CPU 使用率飙升超过 30%

我的大多数测试看起来像这样 -

这里有什么明显的东西会导致如此高的 CPU 和内存使用率吗?我所看到的使用量是否与此数量的测试有关?

我可以看到,当测试运行时,chrome 窗口一次充满了许多不同的渲染组件,似乎没有卸载它们,我是否可能在测试中错过了需要卸载或销毁渲染组件的步骤?