先给结论:不要为“组件本身”写一份通用验收样例,而要为“组件在具体页面上下文中的表现”分别取样。同一组件在首页正常、在列表页错位,通常不是组件坏了,而是页面容器宽度、数据长度、加载顺序或样式作用域不同。验收样例要能复现这些差异,而不是只测组件单独渲染的样子。
假设你正在做一个六安本地的企业展示站,包含首页、产品列表页、产品详情页和新闻列表页。开发阶段,一个卡片组件在首页三列布局里显示正常:图片比例正确、标题两行截断、按钮位置一致。上线前抽检时,产品列表页的同一卡片却出现标题撑高、图片被拉伸、按钮掉到下一行的情况。
如果此时只拿首页截图去验收,结论会是“组件没问题”。但真正要验收的是组件在四种页面上下文里的表现,所以样例必须覆盖这些上下文,而不是只覆盖组件本身。
同一组件表现不同,常见原因可以分成四类,每类对应不同的验收样例构造方式:
只有把原因分开,验收样例才能定位到“是组件要改,还是页面容器要改”。
一个可执行的验收样例,不是一句“检查显示是否正常”,而是一组可复现的条件和预期结果。建议每个样例至少写清以下字段:
其中“判定方式”最关键。没有判定方式的验收样例,最后容易变成主观争论。
假设你只做一个动作:把产品列表页的卡片容器从两列改成三列,再观察同一组件是否恢复正常。如果恢复正常,说明问题出在容器宽度与卡片最小宽度不匹配,下一步应调整容器的断点规则或卡片的最小宽度,而不是改组件内部结构。如果改成三列后仍然错位,说明问题更可能在页面级样式覆盖或数据长度,下一步应检查样式作用域和最长文案样例。
这个动作的价值在于:它把“组件表现不同”从一个模糊现象,变成一个可以二分的判断路径。验收样例因此不是一次性清单,而是随排查结果逐步收敛的取样集合。
需要说明的是,上面这套方法适用于组件在多个页面复用、且页面容器或数据状态存在差异的情况。如果站点只有一种页面布局、内容长度也基本固定,那么为每个页面单独构造验收样例的收益有限,可以直接以组件单独渲染的样例为主。
另外,验收样例记录的是“在给定条件下应出现的结果”,不是对某个框架或插件的功能承诺。不同项目的容器规则、断点设置和数据来源不同,样例字段可以复用,但具体数值必须按当前项目重新确认。把别处的样例数字直接搬过来,反而可能掩盖本项目的真实差异。