问题标签 [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 - 是否可以在 React 测试库中定义自定义 fireEvent?
所以我知道可以React Testing Library
使用buildQuries
辅助函数创建自定义查询,但是有没有办法定义一些辅助函数,例如通过其标签获取输入然后更改其值?
我试图创建一个自定义查询并在其中调用fireEvent
,但无法使其工作。
我需要的函数看起来像这样:
eslint - eslint-plugin-testing-library 没有捕获 lint 错误
我正在尝试添加eslint-plugin-testing library
到一个项目中以捕获我们@testing-library/react
测试中的常见错误。我已按照说明步骤操作,但我无法让它捕获测试文件中的错误。
例如,我手动打开no-debug
规则,debug()
在 .test.tsx 文件中添加一条语句,然后运行 linter。它不会捕获文件中的任何错误。
如果我违反其他插件的规则,它们就会被捕获,所以我怀疑我将 testing-library 插件添加到我的配置中的方式可能有问题。
包.json
.eslintrc
javascript - 如何在测试库/反应库中干涸查询
我对虚拟计数器组件进行了以下简单测试:
用一些方便的助手来干掉它是一个好习惯吗,比如:
我做了一些研究,但找不到任何关于这种方法的体面资源。
javascript - 使用 `Backspace` fireEvent 从后面删除字符
我尝试使用该Backspace
事件从后面删除一个字符,但它没有按预期工作。
它不会让我使用 `Backspace 从后面删除字符。
复制:https ://codesandbox.io/s/testing-library-delete-1-character-i4y3d?file=/src/input.test.js:507-753
reactjs - 使用测试库测试 history.goback 并做出反应
我正在尝试检查此组件中的回退导航:
我使用页面https://testing-library.com/docs/example-react-routertesting-library
中的配方
这是我的测试:
变量是“我的history.location.pathname
学习”,它应该是“/”
有什么问题?
reactjs - 使用带有 jest 和 react-testing-library 的 next/head 测试 next.js 标题,给出误报
我已经开始在我的最新项目中使用 Next.js,我想对页面进行一些测试。我创建了一个_document
文件,在其中设置了我想要使用的所有元标记,包括页面的标题。
然后我设置我的测试来呈现这个页面(它应该包括这个_document
作为它的一部分)
它按预期工作(包括 SSR)。
所以我尝试使用react-testing-library
和jest
这是我的测试:
不幸的是,它给了我误报,而expect
无论如何,block 都是真的。我也试过Head
直接在页面上设置,不幸的是,同样的问题。
你有没有使用任何其他技术来测试这种东西?谢谢!
javascript - isVisible 在使用 jest-dom 的 Jest 测试中不起作用
我已经尽可能简化了 CodeSandbox 来重现我的问题。您可以在 CodeSandbox 中看到失败的测试正在运行。
在我的示例中,我有一个名为的组件MyCheckbox
,它只是 material-ui 的包装器Checkbox
。它需要一个data
只是一个数组的道具。如果数组中有东西,则复选框获取,opacity : 1
否则获取opacity : 0
MyCheckbox
我创建了两个in实例MyCheckboxesInUse
,一个可见,另一个不可见。
....在浏览器中导致以下结果
然后我有一个简单的测试,检查第一个复选框是隐藏的,第二个是可见的
即使第二个复选框清晰可见,测试也会失败并出现以下错误。这是一个错误jest
还是jest-dom
?
reactjs - 当我使用 react 测试库、react.lazy 和 suspense 两次开玩笑地运行相同的测试时,为什么加载程序没有显示在第二个测试中?
这是我的代码示例
我遇到的问题是,我希望在运行第二次测试时拥有加载器,但它不存在因此引发错误。
我想知道为什么加载器没有在第二个测试中呈现,它立即呈现登录页面。我怀疑第一个测试会影响第二个测试,但问题是为什么。
我在这里创建了一个对此问题的回复。https://repl.it/@tibetegya/Create-React-App
reactjs - 无法通过可访问名称找到警报
我正在编写一个测试来满足以下业务规则:
如果我们
Canada
从国家下拉列表中选择,如果省和邮政编码字段为空,则在模糊上显示错误消息。
我正在测试的 React 最终形式是:
我正在编写的测试如下所示:
我正在尝试触发错误消息-它会被渲染出来role="alert"
-但我的测试失败了:Unable to find role="alert"
现在,如果我删除name
我试图过滤的属性,alert
则会找到:
我可以检索警报findAllByRole
并对其进行迭代,但我真的只想用可访问的名称显式查询每个警报,并断言它们在文档中。
我在调试屏幕时看到了元素,我只想弄清楚如何使用它的角色和名称直接查询它:
示例表格:https ://codesandbox.io/s/react-ts-unit-test-example-6scjc?file=/src/ContactForm.test.tsx
reactjs - 无法在具有特定名称的列表项上使用 getByRole - RTL
如果这是一个重复的问题,我深表歉意。我在其他任何地方都找不到答案。
零件:
测试代码:
错误:
这是重现此内容的代码框链接: https ://codesandbox.io/s/wandering-browser-mrf78?file=/src/App.test.js
即使它显示错误提示无法找到,它仍然建议我将 li & ul 标签作为可用角色。
有人可以解释一下我在这里缺少什么吗?我尝试使用正则表达式匹配器,但没有运气。