dev.to | 📄 原文链接 | 2026-08-25 收录

测试全过了,契约却是错的

来源:dev.to — 2026-08-24

📋 概述

作者记录了一次被外部评审者逐条击穿的三轮修复。核心缺陷是一个证据分类器从自由文本里推断证据类别(`"ttl expired" in event.notes.lower()`)。第一轮修复改用枚举后 366 个测试全绿,但评审者只问了一句「什么证明了 SKIPPED_TTL_EXPIRED 是真的」,用一行同时含 SKIPPED_TTL_EXPIRED 和 +17.4 小时剩余的矛盾行将其击穿。第二轮修复让枚举与一个「四舍五入的显示浮点」一致,又暴露出 grant 不存在却仍过期、nan 穿透守卫等矛盾。最终版本把权威移到可从行本身重算的直接比较,不再依赖任何派生标签。核心命题:实现正确 ≠ 规范正确 ≠ 证据正确。

🔑 核心要点

💡 金句

通过测试只说明实现者理解了规范,却不说明规范是否理解了问题。
← 返回 dev.to 首页