先给出结论:不要为“这个组件本身对不对”写验收样例,而要为“同一组件被哪些页面条件改变”写样例。把组件从页面里抽出来单独看,通常只能证明它在你的测试环境里成立;一旦换到别的页面,容器宽度、内容长度、加载顺序和主题样式都可能让它表现不同。因此验收样例的最小单位不是组件,而是“组件 + 一组页面条件”。
同一组件在不同页面表现不同,常见原因可以归成三类。第一类是容器条件不同:父级宽度、内边距、栅格列数、是否处于侧栏。第二类是内容条件不同:图片本身比例、标题行数、描述文字长短、是否缺图。第三类是加载与样式条件不同:懒加载触发时机、样式表覆盖顺序、页面是否带额外的主题类名。
要区分这三类,最直接的动作是做一次“单变量对照”:取两个表现不同的页面,只改其中一个条件,其余保持不变。如果改容器宽度后差异消失,问题在容器;如果改图片比例后差异消失,问题在内容;如果只有在某个页面才出现,优先怀疑样式覆盖或脚本执行顺序。这个动作的结果会决定下一步:前两类要回到组件规范里补约束,第三类要回到页面集成层排查,而不是继续改组件本身。
验收样例应当写成“给定条件—执行动作—观察结果”的形式,而不是“组件显示正常”。以下是一个假设例子,用于说明比较方法,不代表任何真实项目结论。
这样写的好处是,样例本身携带了边界。当后来有人把组件搬到第三个页面时,只要该页面符合样例中的条件,就能直接复用判断;如果不符合,就说明需要新增样例,而不是套用旧结论。
个别样本成立、规模化后出现例外,通常发生在以下边界:
这些边界不能靠“再多看几个页面”解决,而要在样例中显式写出适用条件。例如,可以注明该样例只适用于容器宽度大于某个阈值、且图片已声明宽高比的情况。条件写清楚后,读者才能判断手上的页面是否落在样例覆盖范围内。
假设你手上有一个文章列表页,其中的图片组件在首页正常,在分类页却出现高度不一致。可以按以下顺序处理:
这个动作的直接结果是:你不再需要争论“组件到底有没有问题”,而是得到一条可复现、可扩展的条件记录。下一步如果要覆盖更多页面,只需在样例库中增加条件组合,而不是重写整套验收标准。
页面会改版,图片组件也可能被替换。样例如果只记录“通过”,很快会失效;如果记录的是条件、动作和观察点,就能在新页面出现时快速判断是否需要新增样例。建议为每条样例保留一个简短说明:它覆盖什么条件、不覆盖什么条件、上一次因何调整。这样,当同一组件再次在不同页面表现不同时,你能先对照样例库,而不是从零排查。
把组件放回页面条件中验收,才能让样例真正可执行、可复用,并在规模化后仍然站得住。