先给结论:不要按“组件本身合格”来验收,而要按“组件在具体页面上下文中的表现”来验收。做法是把同一个组件分别放进它实际出现的最简页面、最复杂页面和边界数据页面,对同一组可观察量做对照记录。若三处结果不一致,先区分是页面上下文差异还是数据差异,再决定是修组件、修页面还是改验收标准。
齐齐哈尔网站开发中常见一种情况:导航条、卡片列表、表单控件在测试页里显示正常,搬到首页或详情页后却出现间距错位、换行异常、点击区域偏移。直觉会认为“组件坏了”,但组件代码没改。真正变化的是它所在的容器宽度、外层样式、同级元素数量和加载顺序。
如果验收样例只写“组件显示正常”,这种问题一定会在上线后才暴露。因为“正常”没有绑定页面上下文,测试页和真实页面对组件施加的条件并不相同。
组件在不同页面被不同的父容器包裹。父容器可能设置了不同的最大宽度、内边距、display 或 overflow。组件自身没变,但可用空间和层叠环境变了,于是出现与直觉相反的结果。这类问题的特征是:只要把组件放回原测试页就恢复正常。
组件接收的内容长度、条目数量或字段缺失不同。例如卡片列表在测试页只有三条短标题,在真实页面有二十条长标题,导致换行、截断或高度不一致。这类问题的特征是:把同一份真实数据放回测试页,异常同样复现。
关键动作是“控制变量对照”,而不是反复刷新页面。可以按下面顺序取证:
这些现象只能说明“相关”,不能单独证明因果。抓取量或请求量归零、某次统计下降,也可能来自缓存、采集口径变化或访问路径改变,需要结合上面的对照结果一起判断。
样例不是把组件单独截一张图,而是固定三件事:页面上下文、输入数据、可观察量。可以按下面的结构写:
假设一个卡片组件在测试页高度为 120 像素,在列表页变为 180 像素。此时不要直接判定“列表页有问题”,而要先确认列表页的容器宽度是否更窄、标题是否更长。若把测试页容器宽度调到与列表页一致后高度也变为 180,则上下文差异成立;若宽度一致但高度仍不同,则数据差异更可能。这个数字只是说明比较方法,不代表任何真实项目结果。
动作与下一步的关系很明确:完成对照记录后,如果差异来自上下文,下一步是统一父容器约束或为组件补充自适应规则;如果来自数据,下一步是定义内容长度上限或调整截断策略。验收标准应写成“在指定容器宽度和指定数据长度下,组件高度不超过某范围且关键操作可点击”,而不是“显示正常”。
把每个页面都做成完整对照,成本很高。更实际的做法是只对“复用次数多、上下文差异大”的组件建立样例,其余组件按最简页面验收即可。这样既覆盖了高风险场景,又不至于让验收清单膨胀到没人执行。
另外,验收样例要能被人独立复现:写清页面路径、容器条件、输入数据范围和观察点。否则换一个人来测,结论仍然无法对齐,矛盾现象还会反复出现。