问题标签 [user-event]
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 - 使用@testing-library/user-event 进行测试以选择多个选项不会在“onChange”回调中发送正确的值?
一个简单的多选组件:
当用户选择任何选项时,它会将选定的值发送到onSelectedValuesChange
回调。
我想对其进行测试并用于@testing-library/user-event
模拟用户选择选项。
代码中的第 (1) 部分按预期工作,但第 (2) 部分失败。mockOnChange
回调仅["1"]
作为传递参数获取。
这里还有一些控制台中的消息可能有用:
我们可以看到onSelectOptions
已经被调用了 2 次,但参数总是['1']
。
我滥用什么了吗?
这是此问题的一个小而完整的演示:https ://github.com/freewind-demos/typescript-react-testing-library--user-event--multiple-select--demo
reactjs - 无法使用 @testing-library/user-event 用新值更新文本区域
我需要使用@testing-library/react 测试一个graphql-react 组件。我想根据查询的结果值显示文本区域。[我能得到那个]。但是,无法使用 @testing-library/user-event 使用新值更新文本区域。
这是 graphql-react 组件:
CustomWelcomeMessageContainer.jsx
这是测试文件:
CustomWelcomeMessageContainer.test.jsx
在第一个测试中,渲染了一个基本的文本区域,并且文本更新成功[这意味着用户事件的使用没有问题]。
而在第二个测试中,graphql-react 组件被渲染并且文本更新失败。是因为 textarea 最初是从道具中填充的吗?无法理解为什么更新不起作用。这是我得到的错误:
javascript - 为什么 @testing-library/user-event 上不存在 clear 方法
我正在做一个 CMS 项目,但我遇到了一个问题。_userEvent.default.clear is not a function
.
当我访问时@testing-library/user-event
,我看到了那些线条
如文件所示,clear()
在userEvent
. 但是文档指出了clear()
方法。
文档 =>文档
这是我第一次使用这个库。任何人都知道问题是什么?
javascript - 使用@testing-library/user-event 进行虚假点击
我想测试单击反应中的链接时是否发生跟踪事件。但是,我确实得到了Error: Not implemented: navigation
单击链接时发生的情况的影响。我正在用 jest 和@testing-library/user-event 进行测试。
我现在想模拟或存根,以便在触发 userEvent 时不会发生导航尝试,因为我只想看到正在发生的跟踪事件。我怎样才能做到这一点?
reactjs - 如何使用 @testing-library/user-event 测试 react-jsonschema-form 组件
我什至无法为react jsonschema form编写最简单的测试。因为对输入元素的更改似乎没有反映在 dom 中。
给定一个像这样的最小形式:
一个最小的测试看起来像
(在Codesandbox完成示例。)
在表单字段中键入后,文本First task aaa
应替换为567890
。不幸的是,事实并非如此。input.value
保持价值First task aaa
。
我尝试了许多触发事件的变体并等待结果,但输入元素的值始终保持不变。
我缺少什么来测试<MyForm />
组件?对我来说似乎很标准。
react-testing-library - 如何使用反应测试库模拟 window.focus()?
我一直在做很多研究,但我找不到成功模拟窗口焦点事件的方法。
我查看了“测试库/用户事件”,但仍然找不到这样做的方法。
在我的组件中,我们有window.addEventListener('focus', doSomething);
,但这永远不会通过测试运行程序调用。
click - fireEvent.click() (form fireEvent) vs element.click() (来自 JSDOM)
背景:我正在使用测试库并试图了解一些底层机制。
由于 JSDOM 已经提供了“点击”事件的处理,我想知道:
- 这两种管理事件的方式有区别吗?
- 如果不是,为什么 fireEvent 重新定义了这个事件?
如果存在差异,我想了解它们是什么以及何时使用一种工具或另一种工具。
(对于第二个问题,我有一个想法,但我想确认一下:fireEvent 提供了一个全局统一的接口来生成事件。点击是其中的一个自然部分。)
reactjs - React-Select 和用户事件库
我想使用 User-Event-Testing-Library ( https://testing-library.com/docs/ecosystem-user-event/ ) 测试我的 react-select 组件。
我只想测试如果单击则选择打开菜单。
这是我的代码:
如果我使用 fireEvent 它可以工作,但是如果我使用 useEvent 它就不能工作..
reactjs - 将 userEvent 与 React 测试库和 react-select AsyncSelect 一起使用时出错(但仅在 CodeSandbox 中?)
我创建了这个 CodeSandbox,以便我可以演示相关代码的问题(onChange 未在测试中触发):
https://codesandbox.io/s/festive-tree-xkw8s?file=/src/App.test.js
但是在 CodeSandbox 中,我什至无法做到这一点,因为只要我打电话
我在控制台中设置了这个错误:
因此,永远不会触发 loadOptions 回调AsynSelect
(在本地我对此没有任何问题,只是 onChange 没有触发)。
我无法找到有关此错误的任何示例或指导。我没有经常使用 CodeSandbox,所以也许我缺少一些基本的东西。
我在本地环境中没有看到此错误,但我正在尝试解决它,因为我想完成原始问题的设置。