← 中文资源

简体中文版本

捕获 HTTP 重放夹具以支持确定性测试

将真实 HTTP 响应录制为版本化夹具,脱敏密钥,在测试中重放,使套件不触网且确定性可复现。

阅读英文原文

录制一次,重放多次

录制重放代理首次运行测试时捕获真实 HTTP 响应,之后从磁盘读取。套件变得确定:相同夹具产生相同断言,无网络、无速率限制。

const interceptor = new MockInterceptor();
await interceptor.record({ file: 'fixtures/api.json' });

提交前脱敏

夹具纳入版本控制,入库前必须剥离所有密钥。将 Authorization 头与令牌字段替换为占位符,若夹具出现匹配已知密钥模式的字符串则 CI 失败。

node tools/redact-fixtures.mjs fixtures/api.json

预期结果

测试套件在断网下通过,未匹配请求立即失败并给出清晰错误,已提交夹具不含密钥。API 契约变更时重新录制,而非每次运行都录制。动态时间戳应通过响应变换冻结或用 schema 校验形状。