先给结论:把组件从“页面整体”里拆出来,分别构造最小复现页,再在真实页面里做一次反向验证。如果两种环境表现不一致,优先怀疑上下文依赖——样式继承、父容器尺寸、数据来源或初始化顺序,而不是组件本身坏了。缺少完整数据或权限时,仍然可以只保留结构、用占位内容替换真实数据,完成这一步判断。
同一个组件在A页面正常、B页面异常,验收样例的构造方式取决于你能否拿到两组页面的差异条件。可以按下面三种前提取舍。
判断依据不是“哪种方式更完整”,而是“哪种方式能让你在下一次修改后得到可比较的结果”。如果改写后的样例连异常都复现不出来,说明你删掉了关键条件,应该退回保留策略。
假设一个商品卡片组件在列表页显示正常,在详情页的推荐位里高度被压缩、图片变形。这是一个典型的父容器上下文差异,可以这样构造样例。
如果两个测试页表现一致,说明问题出在真实页面的其他样式或脚本上,下一步应回到真实页面用逐层禁用样式的方式定位;如果两个测试页复现了差异,说明组件对容器宽度或父级样式存在依赖,下一步应检查组件内部是否使用了百分比高度、绝对定位或依赖父级 display 值的写法。
用占位数据构造样例时,你能得到的结论仅限于结构、样式和初始化顺序层面的差异。例如可以确认组件在窄容器下是否换行、图片是否保持比例、按钮是否被遮挡。
不能推出的结论包括:真实数据量下的性能表现、登录态下的权限分支、接口返回异常时的降级行为。这些需要真实数据或更高权限才能验证,占位样例无法替代。把这两类结论混在一起,是验收样例最常见的误用。
假设详情页推荐位宽度约为列表页卡片的三分之二,组件内部图片使用 width:100% 但父容器没有设定高度。构造样例时,把两个容器宽度分别设为固定像素值,组件代码不变。结果很可能是:宽容器下图片按比例缩放正常,窄容器下若父容器高度由内容撑开,图片会挤压相邻文字。
这个结果会直接改变下一步:如果差异来自父容器高度计算方式,修改点应放在页面级布局,而不是组件内部的图片样式。先改父容器,再用同一组样例复测,才能确认修改是否真正解决了跨页面差异。
样例只对“你构造时保留的条件”有效。一旦页面结构、容器宽度或数据来源发生变化,原有样例可能不再复现问题,这时需要重新构造,而不是继续用旧样例下结论。复测时保持两次样例的容器尺寸、占位内容和引入顺序一致,差异才有比较意义。缺少完整数据或权限并不妨碍你完成结构层面的判断,但要清楚这类判断的适用范围止于结构,不延伸到数据、权限和线上环境。