mcpField
I
integration-testing

integration-testing

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

integration-testing について

アプリケーションのコンポーネントと外部システムの連携を検証する、開発者向けの統合テストスキルです。単体テストとは異なり、データベースや API、メッセージキューなどとの実際の接続を扱います。

主な機能

  1. 01API・データベース統合テスト
  2. 02サービス間通信の検証
  3. 03レイヤー横断のデータフローテスト
  4. 04認証フローのテスト
  5. 05メッセージキュー統合テスト

活用シーン

  1. 01実データベースを使った API テスト
  2. 02サービス間通信の確認
  3. 03認証と認可の検証
  4. 04サードパーティサービス連携のテスト

インストール

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

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

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

同梱ファイル

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

references/
api-integration-testing.md
database-integration-testing.md
external-service-integration.md
message-queue-integration.md
scripts/
scaffold-tests.sh
templates/
test-template.js

詳細

結合テスト

目次

概要

結合テストでは、異なるコンポーネント、モジュール、またはサービスが連携して正しく動作することを検証します。単一の関数を分離してテストする単体テストとは異なり、結合テストでは、データベース、API、外部サービス、インフラストラクチャなど、システムの複数の部分の相互作用を検証します。

使用する場面

  • 実際のデータベース接続を使って API エンドポイントをテストする
  • サービス間の通信を検証する
  • 複数のレイヤーにまたがるデータフローを検証する
  • 実際のデータベースを使ってリポジトリ/DAO レイヤーをテストする
  • 認証および認可のフローを確認する
  • メッセージキューのコンシューマーとプロデューサーを検証する
  • サードパーティサービスとの統合をテストする

クイックスタート

最小限の動作例:

// test/api/users.integration.test.js
const request = require("supertest");
const app = require("../../src/app");
const { setupTestDB, teardownTestDB } = require("../helpers/db");

describe("User API Integration Tests", () => {
  beforeAll(async () => {
    await setupTestDB();
  });

  afterAll(async () => {
    await teardownTestDB();
  });

  beforeEach(async () => {
    await clearUsers();
  });

  describe("POST /api/users", () => {
    it("should create a new user with valid data", async () => {
      const userData = {
        email: "[email protected]",
        name: "Test User",
        password: "SecurePass123!",
      };
// ... (see reference guides for full implementation)

リファレンスガイド

詳細な実装については、references/ ディレクトリを参照してください。

ガイド内容
API 結合テストAPI 結合テスト
データベース結合テストデータベース結合テスト
外部サービスとの結合外部サービスとの結合
メッセージキューとの結合メッセージキューとの結合

ベストプラクティス

✅ 推奨事項
  • 結合テストでは実際のデータベース(インメモリまたはコンテナ)を使用する
  • モックしたレスポンスではなく、実際の HTTP リクエストをテストする
  • 操作後のデータベースの状態を検証する
  • トランザクションの境界とロールバックをテストする
  • テストに認証/認可を含める
  • エラーシナリオとエッジケースをテストする
  • 分離された環境にはテストコンテナを使用する
  • テスト間でデータをクリーンアップする
❌ 避けるべき事項
  • 結合テストでデータベース接続をモックする
  • エラーパスのテストを省略する
  • テストデータをデータベースに残す
  • テストに本番データベースを使用する
  • トランザクション管理を無視する
  • 正常系のパスだけをテストする
  • テスト間で状態を共有する
  • URL や認証情報をハードコードする

コメント