javascript - React-testing-library 为什么 toBeInTheDocument() 不是一个函数

标签 javascript reactjs unit-testing jestjs react-testing-library

这是我的工具提示代码,用于在 MouseOver 和 Mouse Out 上切换 CSS 属性 display: block 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 不是函数

有人知道为什么会发生这种情况吗?我对组件进行渲染和快照的其他测试都按预期工作。 queryByText 和 queryByTestId 也是如此。

最佳答案

toBeInTheDocument 不是 RTL 的一部分。您需要安装jest-dom启用它。

然后通过以下方式将其导入到您的测试文件中:

import '@testing-library/jest-dom'

关于javascript - React-testing-library 为什么 toBeInTheDocument() 不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56547215/

相关文章:

javascript - 通过检测 javascript 中的 CTRL+A 键来聚焦文本框

javascript - 在 React JS 中设置 onClick 值

CocoaPods Google Maps SDK 上的 iOS 单元测试失败

reactjs - 使用下一个 js 链接到目标 ="_blank"

excel - Excel 电子表格的数据驱动单元测试

html - 我如何自动将 Selenium HTML 测试转换为 Ruby Test::Unit 测试?

javascript - JSON 破坏了我的脚本,但它仍然提取数据

javascript - 单击另一个选择框选项时,如何更改带有复选框中选项的选择框中的值

javascript - 比较二维数组 - 寻找独特的项目

reactjs - Visual Studio React图像路径无法到达