mcpField
R
react-native-testing

react-native-testing

github.com/maikotrindadeテスト・品質1351 回インストール2 日前に更新
リポジトリ

react-native-testing について

React Native Testing Library と Jest による単体・コンポーネントテストの参考スキルです。インストール済みのバージョンに合う資料の選択を重視し、Maestro の E2E フローとは対象を区別しています。

主な機能

  1. 01React Native Testing Library v13・v14 の資料
  2. 02package.json に基づくバージョン選択
  3. 03クエリと操作 API の解説
  4. 04非同期テストとアクセシビリティの推奨事項
  5. 05よくあるテストのアンチパターン

活用シーン

  1. 01導入済みバージョンに合う API の選択
  2. 02Jest による React Native コンポーネントテスト
  3. 03クエリや非同期テストでの一般的な誤りの回避

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/maikotrindade/awesome-react-native-skills --skill react-native-testing

インストール後、Claude Code で/react-native-testingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
best-practices-anti-patterns.md
core-patterns.md
reference-v13-api.md
reference-v14-api.md

詳細

React Native Testing Library

@testing-library/react-native v13 および v14 の詳細な API リファレンスです。

対象範囲: Jest と RNTL を使用したユニットテストおよびコンポーネントテストです。実機やシミュレーターでエンドツーエンドの UI フローをテストする場合は、Maestro を使用してください。宣言的な YAML フローでコードは不要です。ビルド済みアプリに対して実行します。RNTL と Maestro は相互補完するものであり、代替ではありません。

重要: API のシグネチャ、同期/非同期の動作、および利用可能な関数は、v13 と v14 で異なります。記憶しているパターンに頼らず、必ずプロジェクトの package.json を確認し、対応するバージョンのリファレンスを読み込んでください。

バージョンの検出

package.json の @testing-library/react-native を確認してください。

  • v14.x → reference-v14-api を読み込みます(React 19 以降、非同期 API、test-renderer)
  • v13.x → reference-v13-api を読み込みます(React 18 以降、同期 API、react-test-renderer)

主なリファレンス

トピック説明リファレンス
基本パターンクエリの優先順位、render/screen、userEvent と fireEvent、waitFor、11 の基本ルールcore-patterns
v13 API(React 18)同期 render、すべてのメソッド一覧、同期 fireEvent、React 19 互換シムreference-v13-api
v14 API(React 19)非同期 render、await ベースの API、削除された API、v13 から v14 への移行用 codemodreference-v14-api
アンチパターン誤ったクエリ、waitFor の誤用、不要な act、分割代入、await の付け忘れbest-practices-anti-patterns

主な推奨事項

  • クエリには必ず screen を使用してください。render() から分割代入しないでください。
  • 最初に getByRole を使用してください。{ name: '...' } オプションを指定します(アクセシビリティに最も配慮した方法です)。
  • 非同期の要素には findBy* を使用してください。waitFor と getBy* の組み合わせは使わないでください。
  • fireEvent より userEvent を優先してください。より現実的な操作をシミュレートできます。
  • queryBy* は要素が存在しないことを検証する場合にのみ使用してください(.not.toBeOnTheScreen())。
  • v14:すべての API で必ず await を付けてください(render、fireEvent、act を含む)。

コメント