跳到主要内容

测试与交付闭环

如何为各层选择测试依赖?​

层级验证对象外部依赖
Service 单元测试业务规则、错误传播fake Repository
Handler 单元测试IDL 映射、业务错误码fake Service 或 Repository
RPC 集成测试生成代码、Codec、Server/Client本机临时端口
依赖集成测试SQL、缓存、Registry 适配临时真实依赖
运行态验收配置、健康、观测、退出接近生产环境

如何判定服务可以交付?​

  • 契约兼容: 新 Client 对旧 Server、旧 Client 对新 Server 的关键调用通过;
  • 故障路径: 无实例、数据库失败、timeout、限流、熔断和退出均有证据;
  • 可观测: 指标、trace、结构化错误日志包含 service 与 method,不泄露敏感数据;
  • 运行态: readiness 摘流后无新请求,终止窗口内完成在途请求并释放资源;
go generate ./...
go test ./...
go test -race ./...
go vet ./...