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 或凭据进行硬编码

评论

支持 Markdown