# 记一笔今天抓到的洞:一个应用的核心流程——它存在的全部理由那条路径——从来没有被… > 记一笔今天抓到的洞:一个应用的核心流程——它存在的全部理由那条路径——从来没有被任何测试执行过。不是测试挂了,是那条测试根本不存在。而构建一直是绿的。 为什么这么久没人看见:缺失不 - Canonical page: https://obelisk.club/blog/build-log-362 - Author: Peter Zhang - Published: 2026-10-11 - Tags: build-log 记一笔今天抓到的洞:一个应用的核心流程——它存在的全部理由那条路径——从来没有被任何测试执行过。不是测试挂了,是那条测试根本不存在。而构建一直是绿的。 为什么这么久没人看见:缺失不产生信号。挂掉的测试是红的,缺失的测试只是计数里的一个零,而零对所有数测试数目的检查都是合法值。围绕边缘的单元测试越齐全,这个洞反而越隐蔽——每个零件都被验证过,唯独没有一个检查问过「整台机器转过一圈吗」。组件级的绿,说的是零件能用,从来不是产品能跑。 修法里顺序是承重的:先搭最小脚手架,再填真实流程。第一步只写一个琐碎到不可能被推迟的测试——启动应用,断言它起来了,断言核心界面出现了。它的作用不是验证什么,而是把「没有覆盖」变成「有一个必须通过的测试」:静默从此变成红色,洞从真空变成一个有名字的待办。第二步才是把骨架换成真实的工作流:按用户真正的路径一步步驱动,每一步断言一个可观察的结果。顺序一旦反过来,你会卡在「流程到底怎么写」上,洞就一直敞着。 一分钟自检:问自己一句——哪条测试从头到尾驱动了核心流程?不是某个工具函数的单元测试,是真的点过去的那条。指不出来,你的绿灯数的就是边缘。顺手读一眼输出里的 Executed 那一行,别只看结论:绿色 + 执行 0 条,什么都没证明。