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

javascript - 使用 reactJs TestUtils 模拟文本输入

我希望能够模拟用户使用 reactjs 在文本框中输入内容,以便我可以测试我的验证状态消息。

我有一个在 keyUp 上验证的反应组件

下面是我尝试过的一个简单示例。

当我在验证器中调试时,这似乎并没有改变绑定文本框的值

这也不行。

有人可以指出我在正确的轨道上吗,第二个与我可以在模拟周围找到的文档内联(http://facebook.github.io/react/docs/test-utils.html),第一个对我来说很有意义(设置实际的文本框值,然后伪造一个事件)

0 投票
1 回答
1622 浏览

javascript - 如何在没有 Browserify 的情况下测试 React 组件

我有一个不使用browserify工具的反应应用程序。这意味着该React变量是由在<head>.

实现这个组件后,我想为它创建一个测试。我查看了Jest 文档并创建了组件测试。

Jest 文档示例中,组件及其测试都使用该require函数来获取React变量。

有没有办法将React变量暴露到组件中?或者有必要使用 browserify 来创建这个测试?

0 投票
6 回答
27579 浏览

reactjs - 如何通过 Jest 测试 React PropTypes?

我正在为我的 React 代码编写 Jest 测试,并希望利用/测试 PropType 检查。我对 Javascript 世界很陌生。我正在使用 npm 安装react-0.11.2并有一个简单的:

在我的测试中。我的测试看起来与 jest/react 教程示例非常相似,代码如下:

但是,似乎EventCell没有触发组件中的 PropType 检查。我知道检查只在开发模式下运行,但后来我也认为react通过 npm 给了你开发版本。当我使用 watchify 构建组件时,检查会在我的浏览器中触发。

我错过了什么?

0 投票
1 回答
5414 浏览

javascript - 使用 Jest 和 React JS TestUtils 测试表单

我有一个带有 3 个单选按钮的表单,如下所示(假名):

而且我很难尝试测试 onChange 和 onSubmit 事件。

我有一个像这样的测试:

除了应该调用的函数 (MyComponent.change) 之外,它是有效的,但它不是。

我还对 onSubmit 进行了一项测试:

注意: MyComponent.insideDone 是一个由“done”函数调用的函数。

这也失败了。我很确定这里的问题是我没有以正确的方式模拟事件。但是,我没有找到使用 React 中的 Jest 和 TestUtils 的示例。

0 投票
1 回答
6065 浏览

reactjs - 测试鼠标滚轮事件

我已经设置了一个简单的函数来处理我构建的菜单组件上的鼠标滚轮事件。该组件工作正常,我正在尝试围绕它编写一个单元测试,这给了我一个问题。

组件处理程序:

this.moveUp() / this.moveDown() 只是设置状态firstIndex

问题是,当我尝试为此功能编写测试时,我无法让它工作。我几乎 100% 确定它与我传入的 eventDetails 对象有关,但我不知道如何正确格式化它。

有谁知道如何正确格式化 TestUtils.Simulate.Scroll() / 知道测试 onWheel() 的更好方法?

0 投票
1 回答
1444 浏览

javascript - 使用 TestUtils.Simulate 在输入元素上创建更改事件时遇到问题

我正在尝试为“Thinking in React”(http://facebook.github.io/react/docs/thinking-in-react.html)中显示的示例编写测试

而且我很难使用 TestUtils.Simulate 为搜索输入对象提供更改事件。

有人有建议吗?我是否错误地使用了 Testutils.Simulate?

0 投票
1 回答
7878 浏览

reactjs - 使用 React TestUtils Simulate 选择选项

我有以下 React 组件,我想使用 TestUtils 在我的选择块中选择其中一个 selectElements。我怎么做?

我已经尝试过这样做:

但它不起作用。

0 投票
4 回答
4021 浏览

node.js - 在基于 jsdom 的测试中调用 setState 导致“无法在工作线程中呈现标记”错误

我正在使用我自己的微型“虚拟浏览器”实用程序在jsdom下测试我的 React 组件。工作得很好,直到我尝试。例如,在测试儿童年龄输入控件时:setState

…在setState我得到的线上:

未捕获的错误:不变违规:dangerouslyRenderMarkup(...):无法在工作线程中呈现标记。在单元测试时需要 React 或使用 React.renderToString 进行服务器渲染之前,请确保window并在全球范围内可用。document

我知道全局变量确实是由 jsdom-based 设置的window,如下所示:documentTestBrowser

我什至试图包装setStatesetTimeout(..., 0). 它没有帮助。如何使测试状态更改起作用?

0 投票
2 回答
2970 浏览

coffeescript - 使用 Jest 和 TestUtils 测试 React 表单提交

我在submit使用 React、TestUtils 和 Jest 测试表单事件时遇到问题。

我有一个渲染<form>DOM 元素的组件;同一个组件还有一个处理onSubmit事件和记录语句的方法。我的目标是模拟onSubmit处理程序并断言它被调用。

表单组件.cjsx

__tests__/test-form-component.coffee

相关问题:

0 投票
3 回答
11525 浏览

jquery - 使用 jQuery 反应组件而不需要 - 开玩笑的单元测试

我有一个非常简单的 React mixin,它使用 jQuery 来触发事件

这作为使用 browserify 的一组新组件的一部分导入主站点。由于拥有这些组件的主站点将始终包含 jQuery,因此我不想在 browserify 中使用 jQuery,因为它会被复制。

就行为而言,这不是问题 - 但是在运行 jest 以使用此 mixin 对组件进行单元测试时会引发问题,从而引发错误。

我知道我可以通过 browserify 包含 jQuery 来解决这个问题,但这会将 2 个副本加载到我的网站中。

有什么办法可以开玩笑地告诉我的反应组件 jQuery 已经存在于窗口中而不用担心它?