Files
ez-api/TESTING.md

1.6 KiB
Raw Blame History

Testing (ez-api)

本仓库的单元测试采用 Go 标准组织方式:单元测试与源码同目录(*_test.go),默认通过 go test ./... 运行。

此外,本仓库仍保留 ./test 下的 docker-compose 集成测试(带 integration tag用于端到端验证。

运行

单元测试

go test ./...

集成测试docker compose

./test/integration.sh

说明

  • 单元测试不依赖 Docker不访问公网。
  • 对 Redis 相关逻辑优先使用 miniredis(纯内存、接近真实命令行为)。
  • 对 DB 相关逻辑优先使用 sqlite in-memory只用于测试避免引入外部依赖。

分阶段计划(长期)

阶段 1已落地

  • provider 归一化Vertex 默认 google_location=global 的回归保护
  • SyncServiceRedis snapshot 写入与 routing key 生成
  • request_idGin middleware 透传/生成

阶段 2已落地一部分

  • Master/KeyCreateMaster/ValidateMasterKey/IssueChildKey 的关键分支(含 child key 上限)

待补齐:

  • Master/Keyepoch/禁用等更多状态分支
  • LogWriter批处理/刷盘边界(可用 fake clock 或缩短 flush interval

阶段 3已落地一部分契约测试

  • 与 DP 的 provider snapshot schema 契约:github.com/ez-api/foundation/contract/testdata/provider_snapshot.json + SyncProvider 输出回归
    • golden 来自 github.com/ez-api/foundation/contractgo:embed避免 DP/CP 两边复制文件

待扩展:

  • model snapshot 契约能力字段、max_output_tokens 等)
  • token/master snapshot 契约(如果后续引入更多字段)