先给结论:不要为这个组件单独写一份“组件验收单”,而要把同一组件在至少两个真实页面里的表现各截取一份,组成对照样例。验收时看的是“同一份输入在两个页面上下文里是否产生可解释的差异”,而不是组件本身是否好看。如果差异来自页面容器的宽度、字体继承或数据条数,就应把它写成带前提的样例;如果差异无法用页面上下文解释,才升级为组件缺陷。
同一组件在列表页和详情页表现不同,通常有两种成立条件完全不同的解释。
两者的代价不同:前者靠约定和容器规范解决,成本低但需要长期维护;后者必须改组件,成本高但一次修完。选错方向,要么反复改页面、要么把好组件改坏。
关键证据是“控制变量后的对照”。你需要构造三份样例,而不是一份:
如果迁移后差异消失、反向后又重现,说明是上下文差异,验收标准应写成“组件在约定容器范围内表现一致”。如果两个方向都重现差异,说明是组件缺陷,验收标准应写成“在相同容器条件下输出必须一致”。
实际动作:先量出两个页面容器的实际宽度和父级字号,而不是凭肉眼判断。这个动作的结果直接决定下一步——若宽度差超过组件设计时的断点,就先去统一容器,而不是动组件代码。
假设某六安企业站的产品列表页和文章详情页共用一个按钮组件。列表页里按钮文字换行,详情页里不换行。测得列表页容器宽度比详情页窄,且列表页父级字号更大。
此时构造验收样例的做法是:固定按钮文字长度,分别记录两个页面的容器宽度和字号,然后在同一宽度下重跑两次。若窄容器下换行、宽容器下不换行,则验收项写成“按钮在容器宽度小于某值时允许换行,且换行后高度不塌陷”。若同一宽度下仍一个换行一个不换行,则验收项写成“按钮在相同容器宽度下必须表现一致”,并把它作为组件缺陷记录。这个例子中的数值只是说明比较方法,不是真实测量结果。
样例不写前提,就等于没写。每份样例至少包含以下字段,缺一项都会让后续判断失去依据:
这些字段不需要写进最终验收文档的每一行,但必须出现在样例记录里。否则下次复现时,你会分不清差异到底来自组件还是来自页面。
判断依据是差异能否被容器条件解释,而不是哪个改动更省事。
注意,抓取量或请求量归零、某个统计指标下降,都不能单独证明组件处理正确,它们还可能是缓存、采样或访问路径变化造成的。验收判断应回到对照样例本身。
把同一组件在两个页面的表现做成对照样例,本质上是把“看起来不一样”变成“在什么条件下不一样”。先量容器和字号,再决定改页面还是改组件;这一步做对了,后面的验收项才有可执行的前提。