问题标签 [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.

0 投票
0 回答
33 浏览

reactjs - 是否可以在 React 测试库中定义自定义 fireEvent?

所以我知道可以React Testing Library使用buildQuries辅助函数创建自定义查询,但是有没有办法定义一些辅助函数,例如通过其标签获取输入然后更改其值?

我试图创建一个自定义查询并在其中调用fireEvent,但无法使其工作。

我需要的函数看起来像这样:

0 投票
1 回答
1739 浏览

eslint - eslint-plugin-testing-library 没有捕获 lint 错误

我正在尝试添加eslint-plugin-testing library到一个项目中以捕获我们@testing-library/react测试中的常见错误。我已按照说明步骤操作,但我无法让它捕获测试文件中的错误。

例如,我手动打开no-debug规则,debug()在 .test.tsx 文件中添加一条语句,然后运行 ​​linter。它不会捕获文件中的任何错误。

如果我违反其他插件的规则,它们就会被捕获,所以我怀疑我将 testing-library 插件添加到我的配置中的方式可能有问题。

包.json

.eslintrc

0 投票
0 回答
48 浏览

javascript - 如何在测试库/反应库中干涸查询

我对虚拟计数器组件进行了以下简单测试:

用一些方便的助手来干掉它是一个好习惯吗,比如:

我做了一些研究,但找不到任何关于这种方法的体面资源。

0 投票
1 回答
1827 浏览

javascript - 使用 `Backspace` fireEvent 从后面删除字符

我尝试使用该Backspace事件从后面删除一个字符,但它没有按预期工作。

它不会让我使用 `Backspace 从后面删除字符。

复制:https ://codesandbox.io/s/testing-library-delete-1-character-i4y3d?file=/src/input.test.js:507-753

0 投票
0 回答
1164 浏览

reactjs - 使用测试库测试 history.goback 并做出反应

我正在尝试检查此组件中的回退导航:

我使用页面https://testing-library.com/docs/example-react-routertesting-library中的配方

这是我的测试:

变量是“我的history.location.pathname学习”,它应该是“/”

有什么问题?

0 投票
1 回答
2648 浏览

reactjs - 使用带有 jest 和 react-testing-library 的 next/head 测试 next.js 标题,给出误报

我已经开始在我的最新项目中使用 Next.js,我想对页面进行一些测试。我创建了一个_document文件,在其中设置了我想要使用的所有元标记,包括页面的标题。

然后我设置我的测试来呈现这个页面(它应该包括这个_document作为它的一部分)

它按预期工作(包括 SSR)。

所以我尝试使用react-testing-libraryjest

这是我的测试:

不幸的是,它给了我误报,而expect无论如何,block 都是真的。我也试过Head直接在页面上设置,不幸的是,同样的问题。

你有没有使用任何其他技术来测试这种东西?谢谢!

0 投票
0 回答
2767 浏览

javascript - isVisible 在使用 jest-dom 的 Jest 测试中不起作用

编辑 check-checkbox-hidden-with-jsdom

我已经尽可能简化了 CodeSandbox 来重现我的问题。您可以在 CodeSandbox 中看到失败的测试正在运行。

在我的示例中,我有一个名为的组件MyCheckbox,它只是 material-ui 的包装器Checkbox。它需要一个data只是一个数组的道具。如果数组中有东西,则复选框获取,opacity : 1否则获取opacity : 0

MyCheckbox我创建了两个in实例MyCheckboxesInUse,一个可见,另一个不可见。

....在浏览器中导致以下结果

在此处输入图像描述

然后我有一个简单的测试,检查第一个复选框是隐藏的,第二个是可见的

即使第二个复选框清晰可见,测试也会失败并出现以下错误。这是一个错误jest还是jest-dom

0 投票
1 回答
475 浏览

reactjs - 当我使用 react 测试库、react.lazy 和 suspense 两次开玩笑地运行相同的测试时,为什么加载程序没有显示在第二个测试中?

这是我的代码示例

我遇到的问题是,我希望在运行第二次测试时拥有加载器,但它不存在因此引发错误。

我想知道为什么加载器没有在第二个测试中呈现,它立即呈现登录页面。我怀疑第一个测试会影响第二个测试,但问题是为什么。

我在这里创建了一个对此问题的回复。https://repl.it/@tibetegya/Create-React-App

0 投票
2 回答
1063 浏览

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

0 投票
1 回答
3703 浏览

reactjs - 无法在具有特定名称的列表项上使用 getByRole - RTL

如果这是一个重复的问题,我深表歉意。我在其他任何地方都找不到答案。

零件:

测试代码:

错误:

这是重现此内容的代码框链接: https ://codesandbox.io/s/wandering-browser-mrf78?file=/src/App.test.js

即使它显示错误提示无法找到,它仍然建议我将 li & ul 标签作为可用角色。

有人可以解释一下我在这里缺少什么吗?我尝试使用正则表达式匹配器,但没有运气。