先给结论:不要试图复现“所有页面都正常”再验收,而是把组件拆成“结构、数据、样式、交互”四个可单独观测的层,为每一层各准备一个最小样例页,用同一份组件代码分别放入两种页面条件。这样做的原因是,缺少完整数据或后台权限时,你仍然能判断问题出在组件本身还是页面环境;但反过来说,样例通过只能说明这两组条件成立,不能推出全站所有页面都成立。
同一个组件在不同页面表现不同,通常落在两类原因上,对应的验收样例也完全不同。
区分这两类很关键:如果差异跟着容器走,你去改数据是白费;如果差异跟着数据走,你去调容器宽度也解决不了。缺少完整数据时,优先做条件一的对照页,因为它不依赖真实内容,只用占位文本就能跑。
无论哪种条件,样例页都要让每一层能被单独看见,而不是只看最终截图。可以按下面的顺序搭一个临时页面:
<div class="test-box">,这样组件实际占多宽、有没有溢出,肉眼可判。一个实际动作是:把上面这个样例页复制成两份,一份只改容器宽度、数据不动;另一份只改数据、容器不动。运行后对比哪一份出现异常。结果会直接告诉你下一步该查样式继承还是查数据渲染,而不是两边同时乱改。
缺少权限时,你往往改不了线上页面的模板,但能新建一个临时页面。这时取舍是:
两种都试过仍无法复现时,说明差异可能来自第三种因素,例如父级样式表加载顺序、组件被同一页面引入了两次、或某个页面在组件外层多包了一层链接。这类情况需要回到原页面,用浏览器开发者工具逐层查看实际生效的样式来源,而不是继续在样例页里加变量。
假设某组件在列表页正常、在详情页错位。你搭了样例页,固定占位数据,只把容器从全宽改成带侧栏的窄宽,结果组件在窄宽下也错位了。
这一步能推出的结论是:窄容器足以触发该异常,问题可能与宽度或父级布局有关。不能推出的结论是:详情页错位一定就是这个原因——详情页可能同时还有长标题、图片、第三方脚本等其他差异。所以下一步动作是回到详情页,只把容器宽度临时改回全宽,看错位是否消失;如果消失,再逐个恢复其他差异。若改回全宽后仍然错位,说明宽度不是唯一原因,需要继续排查数据或脚本。
样例页是受控环境,它的价值在于缩小范围,不在于证明全站正确。以下几点需要明确:
因此验收样例的产出应该是一份“差异清单”:哪两种条件组合下异常出现、哪两种下消失、还剩下哪些变量没有排除。这份清单比一张“通过”截图更有用,因为它明确告诉下一位接手的人该从哪里继续查。缺少完整数据或权限时,能做到这一步,就已经把问题从“不知道哪里错了”推进到“知道下一步该固定哪个变量”。