这个项目能做什么

React Testing Library (RTL) 是一个用于 React 的轻量级测试工具,它通过鼓励编写模拟软件实际使用方式的测试来促进良好的测试实践。它构建在 `react-dom/test-utils` 之上,并提供简单、完整的 DOM 测试工具。其主要指导原则是:“测试越贴近软件的实际使用方式,就能带给你越多的信心。” 主要特性包括: - **用户中心查询**:使用 `getBy`、`queryBy` 和 `findBy` 函数,以用户的方式与 DOM 元素交互,并支持正则表达式选择器。 - **鼓励可维护的测试**:关注功能性而非实现细节,因此重构不会破坏测试。 - **支持 React Hooks 和类组件**:无论组件实现方式如何,测试方式都相同。 - **轻量级**:仅暴露鼓励良好测试实践的方法。 安装需要 `@testing-library/react`,并且从版本 16 开始还需要 `@testing-library/dom`。13 及以上版本要求 React v18。建议同时安装 `@testing-library/jest-dom` 以获得自定义的 Jest 匹配器。 基本用法包括使用 `render` 渲染组件,使用 `fireEvent` 模拟事件,以及通过 `screen` 查询元素。复杂示例演示了使用 Mock Service Worker (MSW) 模拟 API 调用,以处理登录流程和错误处理。 RTL 是 Testing Library 家族的一部分,该家族还包括用于可复用 hooks 的 React Hooks Testing Library。它已被广泛采用,并由庞大的贡献者社区维护。