先给结论:不要按“组件在A页面正常”就判定它通过,而要把它在B页面异常的那组条件复制出来,做成一份最小验收样例。样例要包含页面上下文、触发动作、观察点和判定阈值,并且必须在至少两个不同页面各跑一次。下面以你手里已有的一个页面为对象,逐步把它转成可执行方案。
同一组件在不同页面表现不同,常见原因只有三类:组件收到的数据不同、组件所处容器的样式不同、组件挂载的时机不同。验收样例要能区分它们,而不是笼统记录“这里显示不对”。
取一个你手头正在做的页面,把异常组件的父级容器结构、传入参数、加载顺序各抄一份。对比正常页面,找出唯一不同的那一项。假设正常页面的容器宽度是固定的,异常页面是弹窗内的自适应宽度,那么差异条件就是“容器宽度可变”,而不是组件版本。这个判断决定了后续样例怎么写:如果差异在数据,样例要固定容器、变化数据;如果差异在容器,样例要固定数据、变化容器。
实际动作:在异常页面用浏览器开发者工具把父容器临时改成与正常页面一致的宽度。如果表现恢复正常,说明差异来自布局上下文,验收样例就要围绕容器条件展开;如果没有恢复,再怀疑数据或挂载时机。这一步的结果直接决定下一节样例里哪些字段是变量。
最小样例不是截图,而是一段能重复触发的操作序列。建议用固定格式记录,至少包含以下字段:
举例说明,假设你在汕头做网站时遇到筛选组件在列表页正常、在详情页侧栏错位。样例可以写成:页面为详情页侧栏,前置状态为未登录且数据条数大于10,触发动作为点击“更多筛选”,观察点为筛选面板右边缘与侧栏右边缘的距离,判定阈值为距离差不超过2像素且不出现横向滚动条。这里所有数字只是示例假设,用来展示比较方法,不是真实测量结果。
动作与结果的关系:如果你按这个格式写完,仍然无法在另一台设备或另一个账号下复现,说明样例缺少环境字段,需要补充浏览器缩放比例或字体设置,而不是直接判定组件有缺陷。
验收样例的价值在于对照。把同一份样例分别在正常页面和异常页面执行,记录两项结果:是否复现、复现时的具体数值。可能出现三种结果,对应不同决策。
这里有一个容易误判的点:某个页面请求量或抓取记录变少,不能单独证明这个页面的组件处理正确,也可能只是入口位置变化或统计口径调整。验收结论只应基于样例的对照结果,而不是流量数字。
一次验收结束后,把确认有效的差异条件写回检查项,而不是只留一条“已修复”记录。检查项应包含适用页面范围和不适用条件。例如“筛选组件在固定宽度容器内通过,在自适应容器内需额外验证右边缘对齐”,这样下次改版时可以直接调用。
如果后续页面结构发生改版,先判断容器宽度是否仍与样例一致。一致则沿用原阈值;不一致则重新跑一次对照,再决定是否调整阈值。这个动作能避免把旧结论直接套到新页面上,也能让验收样例随项目变化保持有效。
最后提醒一点:验收样例不追求覆盖所有页面,而是覆盖那个让组件表现不同的关键条件。只要这个条件被固定住,同一组件在其他页面的表现就有了可比较的基准。