问题标签 [react-testing-library]
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 - 无法从“act-compat.js”中找到模块“react-dom/test-utils”
我似乎无法解决我收到此错误的原因:这是我的配置:
我在页面上评论了一个开放的GH 问题react-testing-library
。提前致谢
javascript - 你如何检查 react-testing-library 中的复选框?
我似乎找不到关于我想要实现的这个非常简单的事情的太多/任何文档
我有一个下拉菜单display: none
。当我单击一个复选框时,display: block
我想要断言的只是当我单击该复选框时,它会显示下拉列表
代码按预期工作,但测试在第二个期望块上失败说:它仍然应该是display: none
是断言的正确方法吗?
当我单击复选框时,它会更新我的对象中的 2 个属性,true
这就是它在代码中呈现的方式。当我手动通过这些属性时,测试仍然失败,但它在第一个期望中失败了。
我觉得我需要做类似的事情setProps
我现在尝试使用renderWithRedux
,但它似乎没有正确触发我的动作创建者?
fireEvent.click(queryByTestId('LocaleCheckbox'))
尝试更新复选框是最好的选择吗?
javascript - Jest + react-testing-library:警告更新未包含在 act() 中
我正在使用 react-testing-library 测试我的组件,并且测试效果很好。我只是无法摆脱这个警告,fireEvent 应该被包装在开箱即用的行为中,但我试图再次包装它并没有帮助。
这是我的测试用例。
这是警告
reactjs - 对 Material UI Select 组件的更改做出反应测试库
我正在尝试使用react-testing-library 测试Select 组件onChange
的事件。
我使用getByTestId
效果很好的元素,然后设置元素的值,然后调用fireEvent.change(select);
,但onChange
从未调用过,状态也从未更新。
我尝试过使用 select 组件本身以及获取对底层input
元素的引用,但都不起作用。
有什么解决办法吗?或者这是一个已知问题?
reactjs - 我是否应该测试“包装布局”组件是否将道具传递给已经测试过的子组件?
我正在建立一个博客页面,它有一个Sidebar
和一个Posts
组件,两者都经过单元测试,以检查它们是否呈现了 props 传递的正确数据(两者都是纯组件)。
我必须创建一个名为的包装组件,BlogLayout
因为我在某些时候重复了一些代码。BlogLayout
接收帖子和类别作为道具,然后将传递给Sidebar
和Posts
组件,并使用一些样式渲染两个组件。
问题是:我不知道我应该如何测试BlogLayout
组件。它的全部目的是只将收到的道具传递给Sidebar
和Posts
组件(它将类别和帖子作为道具传递)。
我对这种情况的观点和问题:
如果我测试是否
BlogLayout
呈现类别和帖子(作为 UI 数据),我只会重复我在两个组件中进行的完全相同的测试。无论如何我应该这样做吗?如果我考虑不测试它,因为它只是重复的代码,如果我不将这些道具传递给组件,我可能会遇到问题。它们将作为单元工作,但不会在应用程序中一起工作。
我对此的解决方案是进行单元测试
BlogLayout
以仅检查它是否将正确的道具传递给子组件。这样我会有一个更简单的测试,因为知道 props 是传递下来的,我可以完全确定子组件会正确处理它,因为它们已经过测试。那可能吗?
我正在react-testing-library
用于测试。
非常感谢任何帮助我获得最佳解决方案的贡献,我远不是一个有经验的测试开发人员,所以我可能在这里对它们有一些错误的想法。
非常感谢!
javascript - 如何使用 react-testing-library 触发 onSearch 事件
我有一个<InputSearch/>
组件作为包装器,当用户按下时<input type="search">
接收onSearch
道具作为回调enter
。我如何测试回调是否会被 react-testing-library 调用?
我要测试的组件:
我努力了:
测试结果:
react-testing-library - 来自 getByLabelText 的打字稿 HTMLInputElement
目前,如果我做类似const input = getByLabelText('Checked');
输入的类型是 HTMLElement。
但是,如果我尝试做类似的事情,expect(input.checked).toBe(true);
或者input.value
typescript 会因为它不是 type 而感到难过HTMLInputElement
。我想知道我是否遗漏了什么或者类型需要添加一个泛型来做类似的事情getByLabelText<HTMLInputElement>()
react-testing-library - 如何使用 useEffect 和 useRef 挂钩将焦点设置到反应组件中的 div 元素?以及如何测试它?
几乎所有关于设置焦点的文章和示例都使用输入元素进行了解释。它适用于输入元素,但如何使用 React useRef 和 useEffect 挂钩将焦点设置到 div 元素?
如何使用toHaveFocus
react -testing-library 对其进行测试?