先给结论:不要为“组件本身”写一条通用验收项,而要为“组件在具体页面上下文中的表现”各写一条样例,并明确记录页面类型、容器宽度、数据形态和交互前置条件。只有当同一组件在两种以上真实上下文里都通过,才把它标为可复用;否则它只是“在某个页面成立”的局部实现。下面用一个假设情境把决策过程走完。
假设某个泉州网站开发项目里,团队做了一个可复用的多条件筛选组件。它在商品列表页顶部横排时表现正常:展开、收起、多选、清空都符合预期。后来同一个组件被放进文章详情页的侧栏,宽度从整屏变成约四分之一屏,于是出现三个现象:选项换行后点击区域错位、已选条件标签把容器撑破、移动端收起状态下仍占据高度。此时如果只写“筛选组件功能正常”,验收必然放行一个有问题的页面。
关键判断是:这不是组件“坏了”,而是它从未在窄容器和侧栏结构中被验证过。验收样例要补的正是这层上下文。
构造样例时,先列出这个组件实际会出现的页面位置,再为每个位置定义可观察的结果。假设筛选组件出现在三类位置,可以这样拆:
每一行都要写清“前置条件”和“通过判据”。例如侧栏窄容器的通过判据可以是:任意选项文字换行后,点击热区仍覆盖整行且不重叠;已选标签数量达到假设的五个时,容器不出现横向滚动。这样验收人不需要猜测,直接按条件复现。
同一组件表现不同,常见原因有三类,取证方式不同,处理动作也不同:
这三类证据指向不同修改位置。若把宽度问题误判为逻辑缺陷,可能改坏列表页;若把状态叠加问题当成样式问题,只调间距,复现步骤一换又会回来。因此验收样例里要保留“复现路径”,让下一步动作有依据。
假设为侧栏筛选写一条样例,可以这样组织:页面为文章详情页,容器宽度设为假设的 320 像素,数据为最长选项文字加五个已选项,操作顺序为展开、勾选五项、收起、再次展开。通过判据是:收起后容器高度回落到初始值,再次展开时已选项顺序不变,且无横向溢出。
执行后会出现两种结果,分别影响下一步:
这里的关键动作是“修完必须重跑其他上下文样例”。只验证出问题的那一条,很容易把窄容器修好却压坏了整宽布局。验收样例的价值不在于数量多,而在于每条都绑定一个明确上下文,并且修改后能指出该重跑哪几条。
如果项目后续换了页面模板、改了栅格或引入新的断点,原有样例的容器宽度和操作顺序可能不再成立。此时不能把旧样例原样复制到新页面,而应重新确认三件事:组件在新页面中的实际容器宽度、该页面会出现的最长数据形态、以及用户到达该组件的操作路径。三者任一变化,样例的通过判据就要重写。把组件标为“可复用”之前,至少要有两个不同上下文都通过,否则它仍然只是局部可用。