[使用React Testing Library测试组件时,我发现自己以getBy*
开头,偶尔需要用queryBy*
替换它(例如,如果我需要检查元素的不存在)。我的测试最终以getBy
和queryBy
的混合形式结束,最近我刚刚在所有内容上都使用了queryBy
。
让我开始思考...有没有理由使用getBy
?
这样的声明按预期失败,不需要抛出错误:
expect(queryByText('Click me')).toBeInTheDocument(); expect(queryByLabel('Name').value).toBe('George')
如果未找到元素,抛出错误有什么好处,并且有理由不对所有(同步)查询使用
queryBy
吗?
[使用React Testing库测试组件时,我发现自己从getBy *开始,偶尔需要用queryBy *替换它(例如,如果我需要检查...的不存在,
所以我说抛出错误的好处是,您始终确保测试失败将指向根本问题(无法找到您期望存在的元素),而不是该根本问题的副作用(尝试在稍后的测试中使用该元素)。