SuperAPI AI 工具集

golang-gin-testing

编程与开发

查看项目

更新于 10-15 20:30

技能介绍

用途:为 Go Gin REST API 编写测试,覆盖单元、集成、端到端、基准与模糊测试,重点讲解日常最常用的测试模式。

主要能力:按层组织测试策略——Handler 用 httptest 加 mock service 验证 HTTP 契约(状态码、JSON 结构);Service 用 mock repository 验证业务逻辑与错误映射;Repository 用 testcontainers 连接真实 PostgreSQL 验证 SQL 正确性;E2E 用运行中的服务器加真实数据库验证关键用户流程。提供 internal/testutil/ 可复用辅助函数(NewTestRouter、PerformRequest、AssertJSON、BearerHeader),并演示表驱动测试覆盖请求校验与错误路径、用 TestMain 搭建共享测试基础设施。

使用方式:在测试中通过 httptest.NewRecorder 与 router.ServeHTTP 调用处理器;用 mock 实现 service 或 repository 接口;用 errors.As 解包 *AppError 检查 HTTP 状态码。运行命令示例:go test -v -race -cover ./...;仅单元测试用 go test -v -race -cover -tags='!integration' ./...;集成测试用 go test -v -race -tags=integration ./internal/repository/...;覆盖率报告用 go test -race -coverprofile=coverage.out ./... 与 go tool cover -html=coverage.out。

适用场景:为 Gin handler、service、repository 编写测试,隔离测试 JWT 认证中间件,搭建 testcontainers 集成测试与 E2E 流程测试。

限制:资料未提供具体收费、价格、平台支持范围与效果数据;集成测试需 Docker 环境;详细内容需查阅 references/unit-tests.md、references/integration-tests.md、references/e2e.md 等参考文件。