mcpField
T
testing-react

testing-react

github.com/thebeardedbearsasテスト・品質107204 回インストール今日更新
リポジトリ

testing-react について

React 19 を扱うチーム向けのテスト戦略スキルです。ブラウザーでのコンポーネントテストとユーザーに見える動作の検証を推奨し、E2E、ミューテーション、プロパティベーステストのツールも紹介します。

主な機能

  1. 01Vitest Browser Mode によるコンポーネントテスト
  2. 02vitest-browser-react によるレンダリングと要素検索
  3. 03Playwright によるコンポーネント・E2E テスト
  4. 04Stryker によるミューテーションテスト
  5. 05fast-check によるプロパティベーステスト
  6. 06MSW による API リクエストのモック

活用シーン

  1. 01実際のブラウザーでのコンポーネント動作検証
  2. 02一連のユーザーフローの E2E テスト実行
  3. 03ミューテーションスコアによるテスト評価
  4. 04プロパティベースのテストケース生成

インストール

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

$npx skills add https://github.com/thebeardedbearsas/claude-craft --skill testing-react

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

同梱ファイルREFERENCE.md

詳細

React 19 + Compiler 1.0 のテスト戦略

バージョン: React 19.2+ | React Compiler 1.0 | Vitest 5 | Playwright

React Compiler 1.0(自動メモ化)はテストに影響しません。内部の最適化ではなく、ユーザーに見える動作をテストしてください。

2026年の推奨スタック

種類ツール用途
ユニット/コンポーネントVitest 5 Browser ModeChromium/Firefox/WebKit をネイティブに使用
コンポーネント(ブラウザー)vitest-browser-reactrender + ロケーター、Vitest Browser Mode に統合
コンポーネントテストPlaywright CTRTL の代替 — 実際のブラウザー
コンポーネント(JSDOM)React Testing Library 16引き続きメンテナンスされています — 既存の JSDOM テストスイートに適しています
E2EPlaywrightユーザー操作を完全に再現するフロー
ミューテーションStrykerテスト品質(スコア >= 80%)
プロパティベースfast-checkテストケースの生成

JSDOM(動作が重く、不完全)よりも実際のブラウザー(Vitest Browser Mode、Playwright CT)を優先してください。React Testing Library 16 は引き続きメンテナンスされています。既存の JSDOM テストスイートで使用し、メリットがない場合は移行しないでください。

ソース: Vitest Browser Mode、vitest-browser-react、Playwright Component Testing、Stryker Mutator

必須の不変条件

  • 新しいコンポーネントテストには Vitest Browser Mode(provider: playwright)を使用し、JSDOM は避けてください
  • 実装ではなく、動作(ユーザーに見えるもの)をテストしてください
  • React Compiler の最適化(メモ化)はテストしないでください
  • マージ前に Stryker でミューテーションスコア >= 80% を達成してください
  • モノレポには Vitest の projects を使用してください(unit / browser を分離)。workspace は非推奨です
  • API 呼び出しのモックには MSW を使用してください(手動で fetch をモックしないでください)

種類ごとのチェックリスト

種類確認項目
コンポーネントVitest Browser Mode または Playwright CT、実際のインタラクション
フックVitest、必要に応じて renderHook
RSC返された HTML のレンダリングをテスト(DOM は使用しない)
E2EPlaywright、expect().toHaveURL() を使った完全なフロー
ミューテーションnpx stryker run、閾値 break >= 50、high >= 80

詳細、コード例、設定、チェックリストについては、REFERENCE.md を参照してください。

コメント