mcpField
U
unit-testing-framework

unit-testing-framework

github.com/aj-geddesテスト・品質373598 回インストール34 週間前に更新
リポジトリ

unit-testing-framework について

開発者向けのユニットテストガイドです。AAAパターン、モック、非同期処理、境界ケースを扱い、高速で独立性のある保守しやすいテストを支援します。

主な機能

  1. 01AAA形式のテスト構成
  2. 02境界ケースとエラーのテスト
  3. 03外部依存のモック化
  4. 04非同期処理とカバレッジのテスト
  5. 05言語別テストガイド

活用シーン

  1. 01新しいコードのテスト作成
  2. 02テストで安全性を確保したリファクタリング
  3. 03チームのテスト規約づくり
  4. 04テストユーティリティとモックの作成

インストール

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

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill unit-testing-framework

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

同梱ファイル

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

references/
example-complete-test-suite.md
mocking-test-doubles.md
test-cases-by-language.md
test-structure-aaa-pattern.md
testing-async-code.md
testing-edge-cases.md
scripts/
scaffold-tests.sh
templates/
test-template.js

詳細

単体テストフレームワーク

目次

概要

業界のベストプラクティスと AAA(Arrange-Act-Assert)パターンに従って、高速で、独立性があり、読みやすく、保守しやすい効果的な単体テストを作成します。

使用する場面

  • 新しいコードのテストを作成するとき
  • テストカバレッジを向上させるとき
  • テスト標準を確立するとき
  • テストによる安全性を確保しながらリファクタリングするとき
  • TDD(テスト駆動開発)を実施するとき
  • テストユーティリティやモックを作成するとき

クイックスタート

最小限の動作例:

// Jest/JavaScript example
describe("UserService", () => {
  describe("createUser", () => {
    it("should create user with valid data", async () => {
      // Arrange - Set up test data and dependencies
      const userData = {
        email: "[email protected]",
        firstName: "John",
        lastName: "Doe",
      };
      const mockDatabase = createMockDatabase();
      const service = new UserService(mockDatabase);

      // Act - Execute the function being tested
      const result = await service.createUser(userData);

      // Assert - Verify the outcome
      expect(result.id).toBeDefined();
      expect(result.email).toBe("[email protected]");
      expect(mockDatabase.save).toHaveBeenCalledWith(
        expect.objectContaining(userData),
      );
    });
  });
});

リファレンスガイド

詳細な実装は references/ ディレクトリにあります:

ガイド内容
テスト構造(AAA パターン)テスト構造(AAA パターン)
言語別テストケース言語別テストケース
モックとテストダブルモックとテストダブル
非同期コードのテスト非同期コードのテスト、テストカバレッジ
エッジケースのテストエッジケースのテスト
例:完全なテストスイートimport { UserService } from "./user-service";

ベストプラクティス

✅ DO
  • コードを書く前、またはコードと並行してテストを書く(TDD)
  • 1つのテストにつき1つのことをテストする
  • 説明的なテスト名を付ける
  • AAA パターンに従う
  • エッジケースやエラー条件をテストする
  • テストを独立させ、相互に依存しないようにする
  • セットアップ/ティアダウンを適切に使用する
  • 外部依存関係をモックする
  • 重要な処理経路で高いカバレッジを目指す
  • テストを高速に保つ(各テスト 10 ms 未満)
  • 類似したケースにはパラメーター化テストを使用する
  • 実装ではなく、公開インターフェースをテストする
❌ DON'T
  • 実装の詳細をテストする
  • 互いに依存するテストを書く
  • 失敗したテストを無視する
  • サードパーティーライブラリのコードをテストする
  • 単体テストで実際のデータベースや API を使用する
  • テストを複雑にしすぎる
  • エッジケースを見落とす
  • リソースのクリーンアップを忘れる
  • すべてをテストする(ビジネスロジックに集中する)
  • 不安定なテストを書く

コメント