先给结论:不要试图复现“组件本身的唯一正确表现”,而要构造一组能区分组件配置差异与页面环境差异的对照样例。缺少完整数据或后台权限时,最小可执行动作是选两个已知表现不同的页面,各截取组件所在区域的可见结构,逐项比对传入参数、容器宽度和同级元素,再据此写出可判定的验收条件。这样得到的结论只适用于这两个页面,不能直接推广到全站。
同一组件在不同页面表现不同,常见原因分两类。第一类是组件被传入了不同参数,比如列表页传了更多条目、详情页传了更长的标题;第二类是组件代码相同,但所在页面的容器宽度、父级样式或加载顺序不同。这两类的验收样例写法完全不同:前者要固定参数组合,后者要固定页面环境。
缺少数据权限时,可以用一个可区分的证据来判断方向:把两个页面的组件区域截图并排,标出发生差异的具体属性,例如换行位置、间距、图片裁切比例。如果差异只出现在文字长度相关的属性上,优先怀疑参数;如果连固定文案的间距都在变,优先怀疑容器或父级样式。这一步只是缩小范围,不能证明根因。
此时验收样例应以参数为变量。做法是选一个基准页面,记录它传给组件的全部字段和值,再为每个可疑字段构造一组边界值,例如标题取最短和最长、列表条目取一条和满屏。每个样例只改一个字段,其余保持与基准页一致。
实施动作:在验收文档里为每个样例写明“页面、传入字段、期望表现、实际表现”。如果改标题长度后换行位置随预期变化,说明差异来自参数,下一步是把参数规则写进组件使用说明;如果改了参数仍与另一页面不一致,说明还有页面环境因素没被排除,下一步转向条件二。
此时验收样例应以页面环境为变量。做法是固定组件内的可见内容,只改变它所在的页面位置或容器,例如把同一模块分别放在通栏区域和侧栏区域,观察表现是否随容器变化。
实施动作:为每个位置各建一个临时页面或临时区块,内容完全相同,只改容器。若表现随容器变化,验收条件就写成对容器宽度的要求,而不是对组件本身的要求;若表现不随容器变化,则差异更可能来自内容或参数,需要回到条件一继续排查。临时页面只用于定位问题,不能当作最终交付页面。
可判定的条件要包含三个要素:前提、动作、可观察结果。例如“在宽度小于某阈值的容器中展示该组件,标题超过两行时,组件高度随内容增长且不遮挡相邻元素”。这里的前提是容器宽度和标题长度,动作是展示,结果是高度与相邻元素的关系。
避免写成“显示正常”“样式统一”这类无法判定的表述。如果确实无法量化,就退一步写成可对照的形式,例如“与基准页面在相同容器宽度下的换行位置一致”,并注明基准页面是哪一个。基准一旦确定,后续所有样例都以它为参照,不再另行解释。
假设某站点在列表页和详情页复用同一个卡片组件,列表页卡片标题换行正常,详情页相关推荐区域的卡片标题被截断。在无法查看组件代码的前提下,可以先固定卡片内的标题文案,只把卡片分别放入列表页主栏和相关推荐栏,观察截断是否随位置出现。若只在相关推荐栏出现,则把验收条件写成对该栏容器宽度的要求,并注明该结论仅基于这两个位置,不能推断其他页面。这个例子的数字和页面均为假设,只用于说明比较方法。
最后把结论收敛成一句可执行的话:先锁定一个基准页面,再用单变量对照区分参数与环境,把可判定的条件写进验收文档,并明确结论的适用范围。这样即使没有完整数据或后台权限,也能得到下一步该改参数还是改容器的依据。