先别急着改组件,而是把“表现不同”拆成可复现的页面差异:同一组件在A页正常、B页异常,通常不是组件本身坏了,而是页面给它的上下文不同。验收样例要围绕这些上下文变量来构造,而不是只截一张对比图。
拿到一个资料或页面后,第一步是确认差异出现的边界。假设一个商品卡片组件在列表页显示正常,在活动聚合页出现高度塌陷。此时不要先归因于CSS,而要先问三个问题:两页引入的是不是同一份组件代码;两页传入的数据字段是否齐全;两页的父容器宽度、栅格或滚动容器是否一致。
如果只有活动聚合页异常,且该页数据缺少副标题字段,那么差异更可能来自数据契约,而不是样式。反之,如果两页数据完全一致、只有父容器不同,则应把父容器约束写进验收样例。这一步的实际动作是:为每个异常页面记录“组件版本、数据样例、父容器条件”三项。记录结果决定后续样例是否需要包含空字段、超长文本或窄容器。
验收样例不是“看起来对”,而是一组可重复执行的输入与预期。以商品卡片为例,可以按下面顺序构造:
这样做的结果是:当开发或设计修改组件后,你能用同一组样例判断是修好了还是引入了新问题。如果某项变量一改就复现异常,它就应该成为验收清单的必测项,而不是留在口头描述里。
同一组件在不同页面表现不同,并不总是缺陷。需要先明确哪些差异是业务允许的。例如列表页卡片允许两行标题,而推荐位只允许一行;此时高度不同是设计预期,不应作为缺陷验收。
判断条件可以这样写:如果差异来自页面明确声明的布局规则,则允许不同;如果差异来自未声明的数据缺失或容器约束,则必须修复。把这条规则写进验收样例的备注列,能避免后续把正常差异当成回归问题反复返工。
假设一个按钮组件在首页显示为绿色,在结算页显示为灰色。若两页传入的主题变量不同,且结算页主题变量是业务要求,那么这不是缺陷;若两页主题变量相同但结算页被父级样式覆盖,则是缺陷。验收样例应分别包含“主题变量一致”和“主题变量按页面覆盖”两种情况,并写明各自预期。
这个假设例子的价值在于:它迫使你先把“预期从哪来”说清楚。只有预期来源明确,样例才能帮助下一步决策——是改组件、改页面配置,还是改数据录入规则。
当差异修复并验证通过后,不要丢弃样例。把确认有效的样例并入回归清单,并注明它覆盖的页面和变量。下一次组件升级或页面改版时,先跑这组样例,再决定是否需要扩大测试范围。这样,一次页面差异的处理结果会直接影响后续验收的起点,而不是每次从零排查。