React Testing Library测试元素不存在报错,求正确实现方法
解决测试“原始数字未显示”的问题
问题出在你用了getByText来断言元素不存在——getByText系列方法在找不到目标元素时会直接抛出错误,根本到不了后面的.not.toBeInTheDocument()断言环节。
正确的做法是用queryByText方法,它在找不到元素时会返回null,不会报错,正好适合用来断言元素不存在:
expect(screen.queryByText('3.51')).not.toBeInTheDocument();
如果担心文本被拆分到多个元素中(比如错误提示里提到的情况),还可以用正则表达式或者匹配函数来更灵活地检测:
- 使用正则表达式:
expect(screen.queryByText(/3\.51/)).not.toBeInTheDocument();
- 使用匹配函数:
expect(screen.queryByText(text => text === '3.51')).not.toBeInTheDocument();
内容的提问来源于stack exchange,提问作者Heikkisorsa
相关产品推荐
相关产品推荐

