このプロジェクトについて

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が必要です。カスタムJestマッチャー用に `@testing-library/jest-dom` もインストールすることをお勧めします。 基本的な使用方法は、`render` でコンポーネントをレンダリングし、`fireEvent` でイベントをシミュレートし、`screen` を介して要素をクエリすることです。複雑な例では、Mock Service Worker (MSW) を使用してAPI呼び出しをモックし、ログインフローやエラーハンドリングをテストします。 RTLはTesting Libraryファミリーの一部であり、再利用可能なフック用のReact Hooks Testing Libraryも含まれています。これは広く採用されており、多数のコントリビューターからなる大規模なコミュニティによってメンテナンスされています。