有一类检查结果比“测试失败”更值得停下来看:失败原因不是哪条断言红了,而是“找不到核心流程的端到端测试”。翻译过来就是:这个应用存在意义的那条主流程,从第一个版本起就没被任何自动化执行过。而构建一路是绿的——因为绿只说明“跑过的测试都过了”,从不说明“该跑的测试存在”。
为什么这种洞能活很久:缺失不会失败。断言写错了会红,测试从未存在过则一声不吭;组件级测试越齐全、越绿,主流程的缺席就越安静。单元测试验证的是零件,零件确实都好;把零件串成产品的那条路径,恰好是任何单测都不会触碰的地方。
修这类洞,顺序是承重的:
1. 先搭空的端到端骨架——XCUITest 启动应用、走进核心流程、断言抵达终点。此时它可能红、可能空,先让它进主线。这一步的意义是把“缺失”变成“一个每天可见的红”:洞从隐身变成明面上的欠账。 2. 再往骨架里填真实操作步骤,让红变绿。 3. 最后把它钉进每次必跑的档位,别让它只在某个专项档里活着。
顺序反过来(先手写完整流程、再考虑怎么接入)等于回到手工验证:验证发生过一次,但没有留下任何可持续执行的证据,洞继续隐身。
一分钟自检:打开你的测试目录,问一句——哪一条测试,从头到尾驱动了“这个应用存在是为了支持的那件事”?一分钟内说不出名字,你就是同一个洞,CI 再绿也一样。