我有一个组件库,我正在使用Jest和react测试库编写单元测试.基于某些props 或事件,我想确认某些元素没有被渲染.
如果未找到导致expect
函数启动前测试失败的元素,则抛出getByText
、getByTestId
等,并在react-testing-library
中出错.
如何使用react测试库测试不存在的东西?
我有一个组件库,我正在使用Jest和react测试库编写单元测试.基于某些props 或事件,我想确认某些元素没有被渲染.
如果未找到导致expect
函数启动前测试失败的元素,则抛出getByText
、getByTestId
等,并在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()