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

react-native - react-native-testing-library 使用 react-intl FromattedMessage 时如何获取文本?

react-native-testing-library 的 getByText 方法似乎在 react-intl 中找不到文本<FormatedMessage />

在这种情况下,getByText 返回 null。

0 投票
0 回答
240 浏览

jestjs - Vue 3/vue-router 的 useRoute() 在单元测试中不能正常工作

我无法让 useRoute() 开玩笑。它在开发/生产中运行良好,只是开玩笑。

我正在使用 vue-testing-library;

在我的测试中:

但是在我的组件中运行测试时:

请注意,我并不是要模拟路由器 - 我在此测试中使用的是我的实际路由器。这似乎在测试中起作用——似乎只有 useRoute() 被破坏了。

0 投票
1 回答
1177 浏览

eslint - 如何使用 testing-library/no-node-access 访问 props.children

我已经成功安装了eslint-plugin-testing-library并使用了它,overrides所以它只会警告我测试文件中的代码。

但是,它抱怨Avoid direct Node access. Prefer using the methods from Testing Library.以下代码props.children

我希望能够插入子节点或默认节点。

这段代码有什么问题?为什么 props 被认为是节点访问?我应该如何更改它以满足警告?只需添加// eslint-disable-next-line testing-library/no-node-access?

Edit:

这是在一个测试文件中。它以与主代码相同的方式创建元素。我不明白为什么引用props.children会引起警告。我想知道警告的理由是什么,以及如何执行预期的结果。

0 投票
0 回答
80 浏览

unit-testing - 如何测试使用自定义 dataProvider 和多个资源的组件?

我有一个使用自定义 dataProvider 的模式组件,它的功能需要两种不同的资源,并为这两种资源创建数据。

主要功能看起来像这样(我省略了模式代码,它是一个由 MUI 多选自动完成输入组成的 MUI 对话框):

我需要帮助编写一个测试,该测试将测试(a)数组中的任何一个是否具有它成功创建资源的playlistObject属性,以及(b)如果它没有该属性,它会成功创建资源并随后创建资源。我还需要将创建的数据用作我的自动完成输入中的选项,所以我不能只期望调用。我需要创建数据并将其呈现为输入中的选项。valuesidplaylistTrackplaylistplaylistObject

我正在为此使用反应测试库。我已经这样包装了我的组件:

我的自定义 dataProvider在哪里dataProvider,但它不起作用,它似乎没有在资源上“创建”(或执行任何查询)。

在这种情况下进行测试的正确方法是什么,以及如何进行?我在这个问题上被困了很长一段时间,所以任何帮助都将不胜感激!

0 投票
1 回答
400 浏览

typescript - 执行 Jest 测试时未加载类型定义

我正在构建一个测试实用程序的开源库,其中还包括自定义技术匹配。但是在创建和运行测试文件时,会出现很多关于类型定义的错误。

运行时参考以下错误yarn test在此处输入图像描述

这些错误与两种不同的类型定义有关,它们是:

  • toBeVisible是一个自定义的 Jest 匹配器,应该来自@testing-library/jest-dom
  • toHaveQueryParam是在我的包内部创建的自定义 Jest 匹配器,我在其中声明了定义@types/jest.d.ts- 此类型定义应加载声明合并,但我认为它由于错误而不起作用。

我的问题是:为什么没有加载类型定义?我认为 TS 编译器或 Jest 配置应该有问题

PR 与测试代码

0 投票
1 回答
124 浏览

javascript - 如何测试纤细的组件

有一个组件使用了第三方模块我们需要对其进行测试,最好不要制作一个导入的模拟组件。写在这个例子上

是否可以在不模拟其他人贬值到该组件的情况下测试组件?

0 投票
1 回答
1128 浏览

reactjs - 使用 react-testing-library 触发(调度)自定义事件

有没有办法使用 react-testing-library 触发自定义事件?我在他们的文档中找不到这样的例子。

我想触发自定义事件(喜欢fireEvent('customEvent')并测试是否onEvent被调用。

0 投票
1 回答
181 浏览

node.js - 测试库忽略的节点环境变量

我正在使用Puppeteer实现测试库,并尝试使用环境变量DEBUG_PRINT_LIMIT来限制打印到控制台的 HTML 的长度,以防万一发生故障。

但是由于某些原因,变量环境只是被库忽略了......

我的项目:

包.json

main.test.js

现在,当我运行时DEBUG_PRINT_LIMIT=10 npm test,环境变量将被忽略,因为它会打印出整个 HTML 而不是 10 个字符...

我尝试了很多东西:在 package.json 文件中设置环境变量,或者直接在代码中设置,但没有任何效果,变量只是被忽略了。

但是,如果我更改库的代码(文件 node_modules/pptr-testing-library/dom-testing-library.js),并替换process.env.DEBUG_PRINT_LIMIT || 7000process.env.DEBUG_PRINT_LIMIT || 10,那么它可以工作!所以似乎由于某种原因环境变量没有正确传递给库。

我在 Debian 机器上使用节点版本 12(我认为它不会改变任何东西)。

你能告诉我我做错了什么吗?

谢谢

0 投票
2 回答
211 浏览

javascript - 为什么我的标头组件已定义但从未在我的测试中使用?

我正在尝试进行反应测试库测试,但有很多问题

组件导出 Header。

0 投票
1 回答
355 浏览

jestjs - Svelte on:click 事件的单元测试

谁能指出我正确的方向?

我期待在点击事件被触发后调用模拟函数。我得到的是: 预期电话数:1 接听电话数:0

这是我的组件以及测试文件:

EventTestingWrapper.svelte

模态.svelte

模态测试.js