diff --git a/client/electron/test/CRITERIA.md b/client/electron/test/CRITERIA.md index 52aaed4..1b57578 100644 --- a/client/electron/test/CRITERIA.md +++ b/client/electron/test/CRITERIA.md @@ -480,3 +480,21 @@ Go 在同一包内**按源文件顺序**跑测试 ⇒ 登记那条先跑就读 **配套动作(pi 2026-09-14)**:写完一处"要提醒人的输出"之后, **去看一眼默认路径的输出** —— 不是看代码,是看它实际打出来的样子。 + +## 17. 变异只证明「注入的样本被抓」,**不证明完备性**;判据的**标签必须等于断言范围** + +**规则**(pi 2026-09-14):一条判据通过变异验证之后,只能说"我注进去的那一条会被抓"。 +**样本不是完备性证明**。配套的第二半更重要: + +> **标签比断言宽的判据,会在它没测的那条路上被回滚时给绿,而人信的是标签。** + +真实例子(`background.test.mjs` 的两条反向断言):名字写着"导航不得变暗 / 不得自叠模糊", +断言体各只扫一条路。三条逃逸路各注一次变异**全部逃掉**(`.dark .nav-rail{}` 选择器作用域、 +组件 `dark:` 变体、组件 `backdrop-blur-lg`),导航变黑而判据全绿。 + +**两种收法,选一个,别都做**: + +1. **把标签缩回它真正断言的东西**(推荐:诚实度比覆盖面值钱),并把**未覆盖的路** + 逐条写在判据旁边(各自另立判据时才补); +2. 把断言扩到标签的范围 —— 成本高,而且极易变成一刀切误红(先例:`bg-chrome-600` + plain 档徽标)。真要扩,**按文件窄豁免**写。