React 测试库
React 测试库
在 DOM 测试库
的基础上构建,通过添加用于处理 React 组件的 API 来扩展其功能。
安装
要开始使用 React 测试库
,您需要将其与它的 peerDependency @testing-library/dom
一起安装。
- npm
- Yarn
npm install --save-dev @testing-library/react @testing-library/dom
yarn add --dev @testing-library/react @testing-library/dom
使用 TypeScript
要获得完整的类型覆盖范围,您还需要安装 react
和 react-dom
的类型。
- npm
- Yarn
npm install --save-dev @testing-library/react @testing-library/dom @types/react @types/react-dom
yarn add --dev @testing-library/react @testing-library/dom @types/react @types/react-dom
问题
您希望为 React 组件编写可维护的测试。作为此目标的一部分,您希望测试避免包含组件的实现细节,而是专注于让测试提供您预期的信心。作为此目标的一部分,您希望测试基础在长期内保持可维护性,这样组件的重构(对实现的更改,而非功能更改)就不会破坏您的测试,减慢您和团队的速度。
此解决方案
React 测试库
是用于测试 React 组件的非常轻量级解决方案。它在 react-dom
和 react-dom/test-utils
的基础上提供了轻量级实用程序功能,以鼓励更好的测试实践。它的主要指导原则是
因此,与处理渲染的 React 组件实例不同,您的测试将与实际的 DOM 节点一起工作。此库提供的实用程序有助于以用户相同的方式查询 DOM。通过标签文本查找表单元素(就像用户一样),通过文本查找链接和按钮(就像用户一样)。它还公开了一种推荐的方式,通过 data-testid
查找元素,作为文本内容和标签没有意义或不切实际的元素的“备用方法”。
此库鼓励您的应用程序更加易于访问,并允许您将测试更接近于用户使用组件的方式,从而让您的测试更有信心,您的应用程序在真实用户使用时能够正常工作。
此库是 Enzyme 的替代品。虽然您可以使用 Enzyme 本身遵循这些指南,但由于 Enzyme 提供了所有额外的实用程序(这些实用程序有助于测试实现细节),因此强制执行这些指南更加困难。有关此内容的更多信息,请参阅 常见问题解答。
此库不是什么:
- 测试运行器或框架
- 特定于测试框架(尽管我们推荐 Jest 作为我们的首选,但该库适用于任何框架。请参阅 不使用 Jest)
注意:此库构建在
DOM 测试库
之上,查询背后的逻辑大部分都来自该库。
教程
观看下面的“什么是 React 测试库?”视频,了解该库的介绍。
此外,请不要错过此 React 测试库教程。