单元测试全部通过,服务上线后仍可能因为字段变化、数据库约束或认证配置失败。支持独立发布的测试需要覆盖服务对外承诺与关键依赖,而不是只证明内部方法按当前实现相互调用。
按失败影响选择场景
优先覆盖创建、修改和查询等关键业务闭环,以及权限拒绝、重复请求和依赖异常。测试数据应包含边界状态和历史兼容情况,不能只有最理想的一条记录。
契约测试关注消费者可见行为
检查请求和响应结构、必需字段、错误码及兼容约定。不要把消费者内部实现复制到提供方测试里。需要对实际使用方保留代表性样本,防止自写自测只验证了自己的假设。
环境差异不能完全交给模拟对象
数据库约束、事务和查询翻译通常需要适合的集成环境验证。外部付费接口可以使用受控替身,但要说明替身没有覆盖的行为,并保留上线前的真实连通性检查。
验收一次独立升级
提供方升级后,让支持期内的消费者运行测试;消费者升级时也验证旧服务兼容。测试失败应能说明业务影响,避免一大批脆弱断言让团队习惯忽略结果。
常见问题:是否需要每次都启动全部微服务测试?
不一定。可以分层验证,关键契约与少量端到端流程配合使用,减少环境维护成本。
技术参考:微软:防腐层模式。具体接口与配置请结合使用版本核对。
将评估落实到你的系统
如果内部团队需要把这些约定落到可运行的工程中,可以通过微服务基础架构建设沟通接口、公共能力与交接范围,先以一个业务场景验证方案。