mcpField
I
integration-contract-testing

integration-contract-testing

github.com/marcioaltoe测试与质量058 次安装今天更新
代码仓库

关于 integration-contract-testing

用于验证适配器边界是否符合应用所依赖契约的测试技能,面向维护外部服务集成的开发者。它涵盖映射、错误规范化、适配器行为及可选的在线冒烟测试。

主要功能

  1. 01验证成功与失败响应结构
  2. 02测试外部数据到内部类型的映射
  3. 03规范化供应商错误
  4. 04用精简脱敏夹具测试适配器
  5. 05要求确定性的 CI 验证

适用场景

  1. 01检查供应商响应缺少必需字段时的处理
  2. 02验证超时与认证失败的错误分类
  3. 03测试分页游标和检查点处理

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/marcioaltoe/skills --skill integration-contract-testing

安装后在 Claude Code 中输入/integration-contract-testing确认已加载。

详细介绍

集成契约测试

使用此技能验证适配器边界是否符合应用所依赖的契约。

核心规则

  • 测试边界契约,而非供应商实现。
  • 验证成功和失败响应的形状。
  • 保持测试夹具真实、精简且已脱敏。
  • 优先在边界进行架构验证,并断言无效的供应商数据会被拒绝。
  • 应用测试使用伪造对象,适配器行为则使用有针对性的集成测试。
  • 确保 CI 具有确定性。联网测试需要明确选择启用、稳定的凭据和清晰的跳过行为。

契约测试层

  1. 映射测试:将外部测试夹具映射为内部类型。
  2. 错误规范化测试:将供应商故障转换为应用错误。
  3. 适配器接缝测试:验证适配器发送了预期的命令/请求,并正确处理响应。
  4. 可选的在线冒烟测试:在受控环境中确认凭据、端点和一项安全操作。

测试夹具规则

  • 将已脱敏的测试夹具存放在适配器测试附近。
  • 按行为命名测试夹具:customer-success.json、customer-missing-required-field.json。
  • 至少包含一个格式错误或不完整的响应测试夹具。
  • 除非完整结构就是契约,否则避免使用大型黄金文件。
  • 对令牌、凭据、个人数据和专有负载详情进行脱敏。

测试检查清单

  • 成功响应会映射为内部契约。
  • 缺少必填字段时会清晰报错。
  • 会妥善处理意外的枚举值/状态。
  • 超时或网络故障会映射为可重试/不可用错误。
  • 身份验证/授权失败不会作为暂时性故障重试。
  • 分页会正确停止,并保留游标/检查点。
  • 在可用时保留请求 ID 等可观测性字段。

伪造对象与模拟对象

测试用例时使用行为伪造对象:

class FakeCustomerGateway implements CustomerGateway {
  customers = new Map<string, Customer>();

  async getCustomer(id: string) {
    return this.customers.get(id);
  }
}

仅在测试适配器本身时,才在 SDK/HTTP 接缝处使用范围明确的模拟对象。

常见错误

  • 只测试是否调用了模拟对象,却不测试调用后的行为。
  • 只测试成功路径的测试夹具。
  • 允许原始供应商字段泄漏到领域断言中。
  • 让所有测试都依赖外部在线服务。
  • 未对测试夹具数据进行脱敏。

评论

支持 Markdown