先给结论:不要为这个组件单独补一个“看起来正常”的页面,而要把它在实际出现的页面里各抽一个代表,组成一组带前提的验收样例。每组样例都要写明页面类型、数据形态、容器宽度和交互路径,并记录组件在其中的可见结果。这样做的目的不是证明组件没问题,而是让“它在哪些条件下成立、哪些条件下不成立”变成可复核的事实。
同一个组件在不同页面表现不同,通常只有两类解释。第一类是组件自身在不同输入下走了不同分支,比如列表为空、字段缺失、文本超长时,渲染逻辑发生变化。第二类是宿主环境不同,比如父容器宽度、页面已有样式、加载顺序、同页其他脚本影响了它。两类问题的修复方向完全不同:前者要改组件内部条件判断,后者要改页面结构或样式隔离。验收样例如果只写“打开首页看是否正常”,就无法区分这两类原因。
关键证据是控制变量后的对比记录。可以按下面的顺序取:
如果只有换页面才出问题,而换数据不出问题,证据更偏向宿主环境;如果同一页面换数据就复现,证据更偏向组件自身。两者都出现时,要拆成两组样例,不要合并成一条“偶发问题”。
样例不是截图堆叠,而是一份可重放的记录。建议每个样例写明:页面路径或页面类型、使用的数据形态、容器宽度区间、组件所处的交互状态、预期可见结果、实际可见结果。假设有一个商品卡片组件,在列表页正常、在详情页推荐位被裁切。可以构造三个样例:列表页三列布局、详情页窄侧栏、详情页窄侧栏且标题为最长值。前两个用于判断是否与容器宽度有关,第三个用于判断是否与文本长度叠加有关。这样下一步动作就明确了:先改容器约束,还是先改文本截断规则。
个别样本成立不代表可以照搬。南昌网站开发中常见的边界包括:页面模板数量有限但内容字段组合很多;组件在静态页面正常,进入带筛选或分页的页面后状态被重置;同一组件被复用在弹层、侧栏和主内容区,宽度来源不同。验收样例要显式标注“本样例成立的前提”,例如仅在容器宽度大于某个值时成立、仅在字段完整时成立。没有写前提的样例,不应作为其他页面的通过依据。
一个实际动作是:先只改容器约束,不改组件内部逻辑,然后重跑同一组样例。如果窄侧栏样例恢复正常,而最长文本样例仍异常,说明容器问题是主因,文本问题可以单独排期;如果两者都未改善,说明组件内部还有条件分支,需要回到数据形态样例继续拆。每次只改一个变量,才能让下一次验收有明确方向。反之,同时改样式、数据和加载顺序,即使页面看起来正常,也无法判断是哪一项起了作用,后续复用仍会踩同样的坑。