javascript - react-testing-library 为什么 toBeInTheDocument() 不是函数
问题描述
display: block
这是我在 MouseOver 和 Mouse Out 上切换 CSS 属性的工具提示代码display: none
。
it('should show and hide the message using onMouseOver and onMouseOut events respectively', () => {
const { queryByTestId, queryByText } = render(
<Tooltip id="test" message="test" />,
)
fireEvent.mouseOver(queryByTestId('tooltip'))
expect(queryByText('test')).toBeInTheDocument()
fireEvent.mouseOut(queryByTestId('tooltip'))
expect(queryByText('test')).not.toBeInTheDocument()
cleanup()
})
我不断收到错误 TypeError: expect(...).toBeInTheDocument is not a function
有没有人知道为什么会这样?我用于渲染和快照组件的其他测试都按预期工作。与 queryByText 和 queryByTestId 一样。
解决方案
toBeInTheDocument
不是 RTL 的一部分。您需要安装jest-dom才能启用它。
然后通过以下方式将其导入您的测试文件:
import '@testing-library/jest-dom'
推荐阅读
- time-complexity - while循环内嵌套for循环的时间复杂度
- java - 通过反射使用方法时没有此类方法异常
- java - 过滤List中的对象排列
- >> 使用 Java 8
- sql - 使用 R 对两列进行分组并计算不同的值
- javascript - 远程自动完成功能不起作用 Angucomplete Alt
- c# - 排除使用实体框架获取数据的列
- kubernetes - 为 kubernetes 中的应用程序定义一个 url
- php - 如何在 php 中撤销注销并能够使用 PingFedarate 获取登录页面?
- python - Python:比较同一CSV中的多列
- javascript - React Native - 我可以将状态对象从父组件传递给子组件吗?