From 22715e8af0a65c341c2c86eca07f48870a5536b3 Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Mon, 14 Sep 2026 17:36:02 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E5=88=A4=E6=8D=AE):=20=C2=A717=20?= =?UTF-8?q?=E5=8F=98=E5=BC=82=E5=8F=AA=E8=AF=81=E6=98=8E=E6=A0=B7=E6=9C=AC?= =?UTF-8?q?=E8=A2=AB=E6=8A=93=EF=BC=9B=E6=A0=87=E7=AD=BE=E5=BF=85=E9=A1=BB?= =?UTF-8?q?=E7=AD=89=E4=BA=8E=E6=96=AD=E8=A8=80=E8=8C=83=E5=9B=B4=EF=BC=88?= =?UTF-8?q?=E4=B8=A4=E7=A7=8D=E6=94=B6=E6=B3=95=EF=BC=8C=E9=80=89=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/electron/test/CRITERIA.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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 档徽标)。真要扩,**按文件窄豁免**写。