先给结论:不要在每个页面各截一张图就算验收,而要构造“同一组件、同一数据、同一动作”的三组对照样例,把页面差异压缩成可复现的条件差。做法是固定组件输入,只改变页面环境变量,例如容器宽度、外层样式、脚本加载顺序,然后记录渲染结果和交互响应。这样做的结果会直接影响下一步:如果差异随环境变量稳定复现,问题属于组件适配;如果换页面仍随机出现,问题更可能在数据或加载时序。
同一组件在不同页面表现不同,常见表象是按钮换行、卡片高度不一致、下拉框错位、轮播图速度不同。此时最危险的做法是直接改组件样式,因为改完可能只修好了其中一个页面。验收样例的第一步不是修复,而是把“不同”写成可核对的三行记录:组件名称、出现页面、具体差异。例如“筛选组件在列表页高度正常,在详情页底部被裁切”,这比“组件显示异常”更接近可验收。
记录时只写看得见、点得动、能量到的结果,不写“感觉不对”。高度、换行、是否可点击、点击后是否出现预期区域,都属于可核对证据。这个动作的结果是让后续对照有共同起点,而不是各人凭印象争论。
第一种解释是组件自身适配不足。它依赖容器宽度、父级定位或最小高度,换到窄栏、侧边栏或弹窗里就失效。第二种解释是页面环境干扰。组件本身没问题,但页面加载了额外样式、脚本顺序不同,或者同一页面存在多个实例,导致后加载的规则覆盖了先加载的规则。两种解释都可能成立,不能只凭“另一个页面正常”就断定组件没问题。
区分它们的关键证据是:把组件单独放进一个空白测试页,再放进原页面,观察差异是否仍然存在。如果空白页正常、原页面异常,环境干扰的可能性更高;如果空白页也异常,组件适配问题的可能性更高。这一步不需要真实项目成果,只是假设比较方法:同一组件、同一数据、两种页面环境,看结果是否随环境切换而改变。
验收样例不追求多,而追求能区分解释。可以按下面三组来构造,每组都注明假设条件:
每组都要有相同的观察项:组件是否完整显示、是否换行、点击后是否出现预期区域、同一动作重复三次结果是否一致。这样得到的不是截图集合,而是可比较的证据链。
如果基准样例正常、环境样例异常,且变量样例显示差异随容器宽度或脚本顺序稳定出现,下一步应优先检查页面级样式作用域和加载顺序,而不是重写组件。如果基准样例也异常,下一步应回到组件自身的适配规则,明确它需要的最小宽度、最大高度和父级定位条件。如果三组样例结果都不稳定,下一步应先检查数据是否一致、同一页面是否存在多个实例,再谈样式修复。
验收标准也要跟着动作走。例如约定“同一组件在列表页和详情页的点击后区域一致,且重复三次结果相同”,比“页面看起来正常”更能判断是否通过。这个约定会影响后续交接:开发能按条件复现,验收方能按同一组样例核对,减少来回返工。
假设一个筛选组件在列表页正常,在详情页侧栏被裁切。基准样例中它完整显示;环境样例中侧栏宽度较窄,组件右侧按钮被遮住;变量样例中只把容器宽度调窄,裁切再次出现。此时可优先判断为容器宽度适配问题,而不是详情页脚本冲突。若把脚本延后执行后裁切仍稳定出现,则脚本顺序不是主因。这个例子只说明比较方法,不代表任何真实项目结果。
构造验收样例的价值在于:它把“不同页面表现不同”拆成可复现的条件差,让修复动作有依据,也让验收结果可核对。对汕头网站开发中的组件交接来说,这比单页截图更接近可执行的判断标准。