问题标签 [jest-dom]

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 回答
5788 浏览

javascript - expect(...).toHaveAttribute 不是一个函数,尽管它已正确扩展

我的测试设置使用jestand detox(@e2e)

问题是,尽管看似正确导入@testing-lib/jest-dom,但我似乎无法使用toHaveAttribute()我应该能够的匹配器。


在我的spec.js文件里面:

但是,在运行我的测试时,我收到以下错误:

TypeError:expect(...).toHaveAttribute 不是函数

在此处输入图像描述

0 投票
1 回答
7158 浏览

javascript - Set size of window in Jest and jest-dom and jsdom

I test the height of the window in Jest with jest-dom and jsdom.

With this code :

The result is an error that say :

Expected: 150

Received: 768

With innerWidth, the received value is 1024

That is great, it means that the size of window is testable with Jest and jest-dom.

But where does 768 and 1024 come from ? Is it the default values and will always be ? Is it configurable and how?

0 投票
2 回答
3609 浏览

reactjs - @testing-library/jest-dom 未加载

我正在尝试将 React 测试库引入 Create React App 项目,但遇到了一个奇怪的问题。对于我的一项测试,我需要使用 jest-dom,但我似乎无法成功导入它。

我已经yarn add完成了,想不出我错过了哪一步。 expect.extend失败,因为它toHaveStyle是未定义的。

这是我的测试文件,减少到最低限度:

输出是:

而且,这是 yarn.lock 的相关部分:

0 投票
0 回答
581 浏览

javascript - React 测试库:测试失败样式(从 MUI 中选择 + 表单控件)

问题

如果组件处于错误状态,我正在尝试测试边框是否为红色,但它在本地机器中失败,但在代码和框中没有

我试过的:

错误状态设置为的代码组件true

测试

codesanbox链接 https://codesandbox.io/s/rtl-mui-select-test-style-border-tekgl?file=/src/test /select.test.js:0-549

编辑 2 本地机器错误日志:

任何线索将不胜感激。谢谢

0 投票
4 回答
8659 浏览

typescript - 如何在 Jest 中模拟 navigator.clipboard.writeText()?

在查看 Jest 问题和SO 答案后,我尝试了以下 4 个选项,但我收到 TypeScript 错误或运行时错误。我真的很想让选项 1 (spyOn) 工作。

0 投票
1 回答
3525 浏览

vuejs2 - 开玩笑单元测试无法确定 Vuetify 组件的可见性

我有一个带有 Vuetify 的 Vue2 项目,我正在使用 Jest 对我的代码进行单元测试。我开始测试一些示例代码,但我无法让 Jest 确定 Vuetifyv-alert组件是否可见。我已经尝试过内置的 Jest 方法以及添加 Jest-dom 并使用该toBeVisible()方法,但到目前为止没有任何效果。

如果你看Test.vue组件,该v-alert组件默认是隐藏的。(它的样式设置为display:none;)

单元测试说明expect(alert).not.toBeVisible()哪个应该通过,但无论v-alert模型设置为什么,它总是失败。如果我将测试更改为expect(alert).toBeVisible()它通过,无论v-alert模型设置为真/假。

如果我将测试更改为expect(alert).toHaveStyle({ display: 'none' });失败,无论我是否将模型设置为真/假。

据我所知,Jest 单元测试根本无法确定v-alert组件的可见性。这些相同的测试在v-btn组件上运行良好,那么为什么会v-alert中断?这只是我的第一个单元测试样本,我已经尝试了 2 天。我有一个完整的应用程序来编写测试,到目前为止,Jest 不能很好地与 Vuetify 一起工作......有什么建议吗?

// Test.vue 组件

// Jest 单元测试

// 包.json

0 投票
1 回答
1496 浏览

reactjs - “匹配器”类型上不存在属性“toBeInTheDocument”'

尝试为组件库设置测试。我已经尝试了许多示例和所有类似的线程,但没有运气。

我的 setupTests.ts 文件正在正确加载(通过 console.log 证明),并且该库似乎可用,就像我添加import { toBeInTheDocument } from '@testing-library/jest-dom/matchers'并记录toBeInTheDocument它存在一样。

我也尝试过这个expect.extend({ toBeInTheDocument })选项,不幸的是仍然有同样的错误。

以下是我的文件,我缺少什么?谢谢

错误:


编辑:弗拉德的评论是正确的,我的错误是愚蠢的。尽管现在测试运行没有任何错误,但 VSCode 仍然抱怨它。

我发现将“testing-library__jest-dom”添加到 tsconfig“types”似乎可以抑制错误,将鼠标悬停在它的类型函数上any,我无法跳转到函数的定义“No definition found for”toBeInTheDocument”。

关于为什么没有加载类型定义的任何想法?

0 投票
0 回答
64 浏览

jestjs - 为什么 React 测试库不应该触发提交处理程序?Jest DOM 是罪魁祸首吗?

我有一个沙箱,我在其中重新创建了我在代码库中遇到的问题。我有一个带有必填字段的表单,以及表单的提交处理程序内部的回调。如果表单无效,实际组件不会正确触发事件处理程序。但是,测试会触发处理程序并因此触发回调。

沙盒链接

我正在使用 React 16.x、React 测试库 10.x、Jest DOM 5.x。(所有版本号都可以在上面的沙箱中看到)。

我的实现实际上是不正确的,还是我的测试不好?或者用于测试的人造 DOM 中是否存在错误?我不知所措。

0 投票
2 回答
4979 浏览

jest-dom - Got TypeError: expect(...).toBeInTheDocument is not a function 即使在正确设置之后

我使用 Create React App 并且已经在 src/setupTests.js 上声明了它:

但是每次我expect(anything).toBeInTheDocument()在测试文件上使用时,在运行测试时我都会得到:

为了确保 setupTests.js 实际运行,我尝试在测试文件上使用酶浅,它可以工作。那么 jest-dom 实际上有什么问题以及如何解决呢?

0 投票
1 回答
326 浏览

javascript - Dom 操作(AppendChild)在 Jest 中失败

我在下面的测试用例中需要一些帮助:appenChild 在 Jest 中失败

实际上这是 JSDOM 的一个问题:https ://github.com/jsdom/jsdom/issues/2274 我需要在测试中进行哪些更改才能解决错误。

谢谢