这是我的工具提示代码,它在 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 is not a function
有没有人知道为什么会这样?我对组件进行渲染和快照的其他测试都按预期工作。 queryByText 和 queryByTestId 也是如此。
原文由 dorriz 发布,翻译遵循 CC BY-SA 4.0 许可协议
toBeInTheDocument
不是 RTL 的一部分。您需要安装 jest-dom 才能启用它。然后通过以下方式将其导入测试文件:
import '@testing-library/jest-dom'