先给结论:不要为“组件本身”写一个通用验收样例,而要为“组件 × 页面上下文”写一组配对样例。做法是固定同一份搬家后数据,在至少两个真实页面模板上分别渲染同一组件,记录差异出现的页面条件,再把该条件写进验收清单。只有单页通过、其他页面异常时,问题通常不在组件代码,而在模板传入的数据、查询结果或页面级样式覆盖。
同一组件在不同页面表现不同,常见原因可以归为三类,验收样例也应据此分组,而不是按页面顺序平均抽样。
判断方法很直接:把出问题的页面和正常页面的同一组件区域做对照,先看传入数据是否相同,再看外层容器是否相同。两者都相同却仍表现不同,才把怀疑范围缩小到页面级样式或脚本加载顺序。
以下情境为假设,用于说明方法,不代表任何真实站点。假设某站点从旧环境搬到新环境后,文章卡片组件在首页显示正常,缩略图、标题、摘要齐全;但在分类归档页,部分卡片只有标题,缩略图位置留白。运营先反馈“组件坏了”,此时不要直接改组件代码。
第一步,取一个正常页面和一个异常页面,分别记录该组件收到的数据:是否有缩略图字段、摘要长度、文章类型。若异常页面里恰好都是没有缩略图的旧文章,那么差异来自数据,而不是组件渲染逻辑。动作是把“无缩略图文章”单独列为一种样例,而不是要求组件在所有情况下都显示缩略图。
第二步,如果异常页面里既有带缩略图也有不带缩略图的文章,却统一留白,则检查模板传入的查询是否漏掉了缩略图字段。动作是补上字段后重新渲染同一页面,观察是否只有原本缺字段的卡片恢复。若恢复,验收样例中就要加入“字段缺失时的降级显示”这一条。
第三步,如果字段完整但样式仍异常,再检查该页面模板是否对卡片容器加了额外类名并覆盖了图片高度。动作是临时移除页面级覆盖,若恢复正常,则把“页面级样式覆盖”写入验收样例的差异条件,而不是修改组件默认样式。
围绕搬家后的实际页面,建议至少构造以下几组配对样例,每组都要能回答“什么条件下允许不同”。
每组样例都要写明预期结果和可接受的差异边界。例如“无缩略图时卡片高度允许比有图卡片矮,但不允许出现空白占位导致错位”。这样验收时才能区分“合理差异”和“缺陷”。
单页通过不等于规模化后通过。搬家后如果站点存在多种文章类型、多个分类模板或页面构建器生成的独立模板,单个页面的正常表现只能证明该页面的数据与上下文组合成立。以下边界需要明确:
更稳妥的动作是:先列出所有使用该组件的模板或区块位置,再按“数据来源 × 模板上下文”交叉抽取最小组合。若组合过多,优先覆盖字段缺失、查询不同、存在页面级覆盖这三类条件,因为它们最容易造成同一组件表现不一致。
验收记录不需要复杂工具,但必须能复现。每条样例至少写清:页面地址或模板标识、组件所在位置、传入数据特征、预期表现、实际表现、是否可接受。搬家后若再次出现同类问题,先比对样例条件,而不是重新通读组件代码。
如果某条样例只在特定页面失败,下一步动作应是回到该页面的数据来源和模板覆盖去排查;只有当所有配对样例都失败时,才优先怀疑组件本身的搬家兼容性。这样处理,才能把“个别样本成立、规模化出现例外”的问题收敛到可验证的条件上,而不是反复在单页上试错。