先别急着判定组件有缺陷。同一组件在不同页面表现不同,通常来自页面级样式覆盖、容器尺寸差异、数据内容长度或加载顺序四类原因。构造验收样例的正确顺序是:固定变量、逐项排除、把差异写成可复现的判定条件,再决定是修组件还是修页面。
同一个按钮、卡片或表单组件,在列表页正常、在详情页错位,这两类归因对应完全不同的修法。判断依据可以看三点:差异是否只在某个页面出现、是否只在某个容器宽度下出现、是否只在某类数据下出现。
把这三条先跑一遍,能避免把页面问题当成组件缺陷去改公共代码,那会把原本正常的页面一起改坏。
验收样例不是“看起来正常”,而是“在什么条件下,什么量,等于什么值”。以你手上那个表现异常的页面为对象,按下面步骤转写:
这样写出来的样例可以在改动前后各跑一次,差异是否消失有明确答案,而不是靠截图对比凭感觉。
假设某卡片组件在列表页显示为等高,在详情页相关推荐区高度参差。检查后发现相关推荐区的父容器没有设定最小高度,且标题允许两行。此时验收样例可写成:父容器最小高度与列表页一致时,单行标题卡片高度为 A;标题为两行时高度为 B,且 B 不得超过父容器。改完后如果列表页出现新的空白,说明改动影响了公共样式,需要回退到页面级作用域。
不要一次改多个地方。每轮只动一个变量,观察结果如何影响下一步判断:
每一轮的结果决定下一轮动哪个变量。若三轮都不复现,说明差异来自页面组合而非单一因素,应把该页面单独列为回归样例保留。
两种选择都成立,但适用条件不同。修组件适用于:差异在三个以上页面重复出现,且组件本身没有对外暴露样式入口。修页面适用于:差异只出现在一两个页面,且这些页面有独立布局需求。
判断动作是先做一次影响面清点:列出所有引用该组件的页面,标记哪些正常、哪些异常。若异常页面占比高,改组件并补一条全局验收样例;若只有个别页面异常,改页面并给该页面单独加一条回归样例。改完后重跑全部样例,确认没有把正常页面拖入异常,再进入下一轮验收。
样例写完后,记录每条样例对应的页面、容器条件、内容条件和预期结果。这样下次同一组件再出现表现差异时,可以直接对照已有样例判断是新问题还是旧条件未覆盖。记录本身不需要复杂工具,一份带条件的清单即可。关键是每条样例都能被另一个人独立执行并得到相同结论,否则它还不算可验收的样例。