先别急着改组件,先确认差异是否由页面上下文造成。构造验收样例时,把同一组件分别放进“最宽松”和“最苛刻”两种页面环境,用可重复的输入对比输出;如果差异只在特定上下文出现,就把它记录为上下文条件,而不是组件缺陷。
同一组件在A页正常、B页异常,通常有两种解释。第一种是组件自身有隐藏依赖,比如样式作用域、脚本加载顺序或数据格式假设,只是A页恰好满足。第二种是页面上下文改变了组件行为,比如父容器宽度、字体继承、全局样式覆盖或异步数据到达时机。两种解释都成立时,先不要合并处理,因为修复方向完全不同。
判断哪一种更可能,可以看差异是否随页面位置移动。把组件从B页原样搬到A页的同一位置,若异常跟着组件走,偏向第一种;若异常留在B页的某个容器里,偏向第二种。
验收样例不是把页面再点一遍,而是设计一组能产生可核对证据的对照。建议按下面步骤操作,每一步都记录输入、页面环境和观察结果。
如果只改容器宽度就复现异常,说明上下文是主因;如果只改数据长度就复现,说明组件对输入有未声明的假设。两种结果对应不同的修复动作:前者调整页面容器或样式隔离,后者补充组件的数据校验和边界处理。
假设某列表组件在资讯页显示正常,在活动页出现文字截断。先构造对照:同一组件、同一组三条数据,分别放入宽容器和窄容器。若窄容器下截断,宽容器下正常,则优先检查页面容器的宽度约束和文字换行规则,而不是直接改组件内部样式。若宽窄容器都截断,但换成短文本后正常,则优先检查组件对长文本的处理逻辑。这个例子只用于说明比较方法,不代表任何真实项目结果。
区分清楚后,验收项要写成条件句,而不是笼统的“组件显示正常”。例如:在容器宽度不低于某值时,长文本应完整换行;在异步数据到达前,组件应保持占位状态且不产生布局跳动。这样下一次改版时,任何人按同样条件都能复现和判断。
最后,把这次差异的上下文条件补进组件说明或页面交付清单。验收样例的价值不在于证明当前页面没问题,而在于让下一个页面遇到同样组件时,知道哪些条件必须满足、哪些条件一旦变化就需要重新验证。