用途:在写依赖外部系统的代码前,先验证其真实行为,避免因状态码、参数名、响应结构、构建作用域等错误假设写出看似正确实际契约不存在的代码。
主要能力与要点:
- 用一次性探针命令向真实系统提出精确问题。示例:uv run --no-project --with somelib python -c "import somelib; print(somelib.Thing())";curl -s -o /dev/null -w '%{http_code}\n' https://api.example.com/v1/things;uv build && unzip -l dist/*.whl;docker run --rm -p 6390:6379 redis:7-alpine。
- 宽容客户端不拒绝错误参数,而是忽略它们,可能返回他人数据;应检查实际发出的请求参数名。
- 选择器一律用关键字传参,不要用位置参数。
- 集合端点与单项端点状态码不可类推,需分别探测。
- 响应结构属于契约一部分,先打印真实元素并对照代码读取的字段。
- Fake 只证明代码调用了 fake,需至少一次对真实服务重跑断言;用真实失败(如死端口 redis://localhost:1)而非 mock 演练失败路径。
- dry-run 会跳过真正失败的那一步,需运行真实构建/安装操作。
- 若探针证明上游行为本身异常,不应靠调参掩盖,而应记录命令、输出和日期。
使用方式:在提交代码前,按检查清单逐项探测精确的调用、端点与版本,并在 PR 或测试中粘贴探针命令及输出。
适用场景:集成第三方库、远程 API、构建后端、解析抓取文档。
限制:资料只强调验证方法,未提供自动化工具、安装包或具体平台支持;探针结果需注明日期,因为外部行为会变化。