我有一个组件库,我正在使用Jest和react测试库编写单元测试.基于某些props 或事件,我想确认某些元素没有被渲染.

如果未找到导致expect函数启动前测试失败的元素,则抛出getByTextgetByTestId等,并在react-testing-library中出错.

如何使用react测试库测试不存在的东西?

推荐答案

DOM Testing-library Docs - Appearance and Disappearance

断言元素不存在

标准的getBy种方法在找不到元素时会抛出错误,所以

const submitButton = screen.queryByText('submit')
expect(submitButton).toBeNull() // it doesn't exist

queryAll API版本返回匹配 node 的array.长度

const submitButtons = screen.queryAllByText('submit')
expect(submitButtons).toHaveLength(2) // expect 2 elements

不toBeInTheDocument

jest-dom实用程序库提供

import '@testing-library/jest-dom/extend-expect'
// use `queryBy` to avoid throwing an error with `getBy`
const submitButton = screen.queryByText('submit')
expect(submitButton).不toBeInTheDocument()

Reactjs相关问答推荐

使用useEffect挂钩获取数据

Formik验证不适用于物料UI自动完成

可选链和useState挂钩

通过单击具有此值的按钮将值添加到数组对象键

使用筛选器的Primereact DataTable服务器端分页?

在Reaction中导入';图片&文件夹时出错

如何在React组件中自动更新图表数据?

当我无法引用模态组件时,如何使模态组件在 Next.js/React 中管理自己的状态?

React 在第一次渲染时为 null

如何使用 App Router 和服务器组件在 Next.js 13 中实现分页

如何在一个 Next.js 项目中使用两种布局?

画布:用鼠标绘制形状时重新绘制整个画布会导致卡顿

无法通过react 路由中的链接传递信息

是否可以直接在 jsx 标签上使用 CSS 定义的 colored颜色 ?

使用reactrouterdom时显示"对象无效作为React子组件"错误

字段是必需的,当它没有定义时

页面不显示

如何通过 id 从 useSprings 数组中删除元素

getAttribute 函数并不总是检索属性值

如何根据数据库中的值设置单选按钮选中? - react