关于 integration-testing
面向开发者的集成测试技能,用于验证应用组件与外部系统之间的交互。重点涵盖数据库、API 和消息队列等真实连接,而非孤立的单元测试。
主要功能
- 01API 与数据库集成测试
- 02服务间通信验证
- 03跨层数据流测试
- 04身份验证流程测试
- 05消息队列集成测试
适用场景
- 01测试 API 与真实数据库的交互
- 02检查服务间通信
- 03验证身份验证与授权
- 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.mddatabase-integration-testing.mdexternal-service-integration.mdmessage-queue-integration.mdscripts/scaffold-tests.shtemplates/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