mcpField
T
testing-patterns

testing-patterns

github.com/blogic-czテスト・品質390 回インストール1 日前に更新
リポジトリ

testing-patterns について

プロジェクト内でテストを書くエージェント向けのスキルです。適切なテストレベルの選び方と既存パターンを示し、データベース統合テストや E2E テストの追加前に確認する条件も定めています。

主な機能

  1. 01複雑さに応じたテスト種別の選択
  2. 02Vitest のユニットテストパターン
  3. 03TRPC 統合テストの手順
  4. 04Playwright E2E テストの手順
  5. 05テスト配置先とコマンド

活用シーン

  1. 01純粋関数やパーサーのユニットテスト
  2. 02Effect サービスとモック依存のテスト
  3. 03データベース統合テストの要否判断
  4. 04ユーザー向けフローの E2E 計画

インストール

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

$npx skills add https://github.com/blogic-cz/blogic-marketplace --skill testing-patterns

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

同梱ファイルreferences/examples.md

詳細

テストパターン

このスキルを使って、効果的なテストタイプの中から最も軽量なものを選び、Vitest の単体テスト、PGlite を使った TRPC の統合テスト、Playwright の E2E テストにプロジェクトで一貫したパターンを適用します。

テストの階層(まずはシンプルなものを優先)

  1. 単体テスト(推奨) - 純粋関数、パーサー、Effect サービスをカバーします。
  2. TRPC 統合テスト - TRPC とデータベース全体の動作をカバーします。
  3. E2E テスト - ブラウザーとユーザーフロー全体をカバーします。

テストタイプの使い分け

状況テストタイプアクション
純粋関数、パーサー、ユーティリティ単体テストすぐに作成します
依存関係のある Effect サービスモックレイヤーを使った単体テストすぐに作成します
TRPC プロシージャ(DB ロジック)TRPC 統合テスト判断プロセスに従います
ユーザー向けフロー、UI の動作E2E判断プロセスに従います

テストファイルの場所

コードの場所テストの場所
packages/X/src/file.tspackages/X/src/__tests__/file.test.ts
apps/web-app/src/infrastructure/trpc/routers/X.tsapps/web-app/src/__tests__/X.test.ts
apps/web-app/src/routes/**apps/web-app/e2e/feature.e2e.ts

判断プロセス(標準)

テストを書く前に、次の手順を適用します。

  1. 単体テストで対応できますか? すぐに単体テストを書きます。
  2. DB の動作(結合、制約、TRPC と永続化)が必要ですか?
    • ユーザーが統合テストを明示的に依頼した場合は、そのまま実装します。
    • それ以外の場合は、「この TRPC/データベースの動作に対する統合テストが必要ですか?」のように質問します。
  3. ブラウザー/UI フローの検証が必要ですか?
    • ユーザーが E2E カバレッジを明示的に依頼した場合は、そのまま実装します。
    • それ以外の場合は、「ここに E2E テストが必要ですか? E2E は最も保守コストの高いテストタイプです」のように質問します。

ユーザーがすでに明示的に指定したテストタイプについて、再度質問してはいけません。

単体テストのパターン

デフォルトでは単体テストを使います。

具体例については、references/examples.md を参照してください。

  • Vitest の基本
  • @effect/vitest とモックレイヤーを使った Effect のテスト
  • モック境界で実際のサービスロジックを使うサービスレイヤーのテスト

用語を明確にします。「モック境界で実際のサービスロジックを使うサービスレイヤーのテスト」とは、外部境界(たとえば HTTP、DB、ファイルシステムのクライアント)をモックに置き換えながら、実際のサービス実装をテストすることを意味します。


TRPC 統合テストのパターン

同意と段階的な対応については、上記の標準的な判断プロセスに従います。

具体的なセットアップとシードヘルパーの例については、references/examples.md を参照してください。

@project/db/testing のシードヘルパーを使って、各ケースに必要な最小限の状態をセットアップします。


E2E テストのパターン

同意と段階的な対応については、上記の標準的な判断プロセスに従います。

具体的な E2E と認証ヘルパーの例については、references/examples.md を参照してください。

E2E が明示的に依頼されていない場合に限り、保守コストについて警告します。


コマンド

bun run test              # Run all unit + TRPC integration tests
bun run test:watch        # Watch mode
bun run test:coverage     # With coverage
bun run test:e2e          # Run E2E tests
bun run test:e2e:ui       # E2E with UI

# Run specific test file (FROM PROJECT ROOT, full path required)
bun run vitest run packages/common/src/__tests__/pagination.test.ts
bun run vitest run apps/web-app/src/__tests__/formatters.test.ts

次のコマンドパターンは避けてください。

# These DO NOT work:
bun run test packages/common/src/__tests__/file.test.ts  # script doesn't accept path
cd packages/common && bun run vitest run src/__tests__/file.test.ts  # wrong cwd

コメント