绿色看板和“核心流程从未被测过”可以同时为真。撞上过一次:构建绿、单测绿、组件级检查全绿,翻遍 UI 测试目录,却没有一个用例驱动过这个 App 存在的意义那条路径——从启动到产出结果的中央工作流,端到端从未执行过。
它为什么隐形:单测和构建在验证零件,零件也确实没问题;而“缺一个测试”不会让任何东西变红。测试不存在,就没有失败可报告,绿色照常发布——绿灯数的是组件,不是产品。
修法本身不复杂,顺序才是承重的部分:
1. 先让缺席变红。生成一个空的核心流程测试骨架,挂进发布前必须过的检查——此刻它就该失败,因为那条路径还没被任何东西驱动过。这一步把“没测过”从沉默变成必须清除的红。 2. 再填真实流程。从启动走到用户真正要的终点,断言“到达了终点”,而不是断言中段某个被 mock 的步骤。 3. 让“骨架缺失”本身构成失败。这样下一个工程不可能带着同一个洞悄悄出厂。
顺序为什么重要:等“感觉写完了”再补的那个测试,永远等不到被写。骨架先行,清除红色的唯一途径就变成真正驱动那条路。
一分钟自检:打开测试 scheme 问一句——哪个用例从启动到最终产出,驱动了这个 App 存在所支持的那条路径?答案是“没有”,或“中间是 mock 的”,那你的绿灯数的是零件。看跑过的用例清单,别只看那行成功标志。