表现差异通常来自上下文,而不是组件本身。构造验收样例时,先固定差异变量:把同一组件分别放进“短内容页”和“长内容页”,或在“有侧栏”和“无侧栏”的模板中各放一次,再记录组件在两种上下文里的实际渲染结果。没有完整数据或后台权限时,这一动作仍可执行;它只能说明该组件在当前上下文中是否稳定,不能推出它在所有页面都正常。
同一组件在不同页面表现不同,常见原因分两类。第一类是上下文差异:容器宽度、父级样式、页面内容长度、是否加载了额外脚本。第二类是数据差异:传入组件的字段为空、字段超长、字段数量不同。两类原因的验收样例构造方式不同。
如果差异只在个别页面出现,优先按上下文差异构造样例:把组件放进最窄容器、最宽容器、有侧栏和无侧栏四种组合,逐一观察。如果差异出现在同类页面的不同条目上,优先按数据差异构造样例:准备空字段、超长字段、多条目三种输入,观察组件是否溢出或错位。
判断依据可以是一个简单动作:在浏览器中调整窗口宽度,若组件在某个断点后才异常,问题更可能出在上下文;若宽度不变、仅换一条数据就异常,问题更可能出在数据。这个动作的结果会直接决定下一步是修改模板还是修改字段校验。
没有后台权限或完整数据时,仍可用静态页面构造样例。把组件代码复制到一个独立的测试页面,手动写入几组不同的容器宽度和字段内容,观察渲染结果。这个动作不需要发布权限,也不需要真实数据。
具体步骤可以这样安排:
这些动作的产出是一张对照记录,而不是结论。它能回答“组件在当前构造的几种上下文中是否稳定”,不能回答“线上所有页面是否正常”。若测试页表现正常,但线上仍异常,说明还有未覆盖的上下文或数据,需要继续缩小范围。
当差异只在特定模板出现时,选择先修上下文。做法是给组件容器设定明确的宽度约束和溢出规则,再回到原页面复测。这个动作的结果如果消除了差异,说明问题出在父级布局,下一步应检查其他模板是否也需要同样的约束。
当差异只在特定数据出现时,选择先修数据。做法是给字段加长度限制或空值占位,再传入同样的数据复测。这个动作的结果如果消除了差异,说明问题出在输入,下一步应检查字段来源是否稳定。
两种选择不能同时做。先改上下文再改数据,会无法判断是哪一项起了作用。若改动后差异仍在,说明当前假设不成立,需要回到第一步重新区分差异来源。
假设某组件在首页正常、在内页错位。先假设差异来自容器宽度,把组件分别放入 320 像素和 1200 像素宽的容器。若 320 像素宽时错位、1200 像素宽时正常,说明宽度是相关变量。此时给容器加最小宽度约束,再复测 320 像素宽的场景。若错位消失,下一步检查内页模板是否缺少该约束;若错位仍在,说明宽度不是唯一原因,需要继续检查字段长度或父级样式。
这个例子的数字只用于说明比较方法,不代表任何真实页面的测量结果。它也不能证明宽度是唯一原因,只能说明在当前假设下宽度与表现相关。
有些差异来自浏览器渲染差异或第三方脚本加载顺序,这类原因无法通过修改组件代码消除。遇到这种情况,验收样例应记录浏览器版本和脚本加载顺序,而不是继续调整组件。
另外,测试页表现正常不能推出线上正常,因为线上可能还有缓存、CDN 或权限相关的样式覆盖。请求量或抓取量归零也不能单独证明组件处理正确,它还可能来自页面未被访问、入口被移除或统计口径变化。验收样例的结论应限定在已覆盖的上下文和数据范围内,超出范围的部分需要新的样例。