建站规划方案:同一组件在不同页面表现不同时怎样构造验收样例

📍 WDQWDWQD987AAAAA:216.73.217.120
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /f9d0f2c865c0.html
📄

建站规划方案:同一组件在不同页面表现不同时怎样构造验收样例

先把“表现不同”拆成可观察的差异,再决定这个组件是保留、改写还是退出验收范围。做法是:选两个差异最明显的页面,各取一条真实数据,按同一组观察点记录,能复现的差异写成验收样例,不能复现的差异先回到数据或配置层面查。

先判断差异属于哪一类,再谈取舍

同一组件在不同页面表现不同,通常落在三种情况里。第一种是数据不同:组件读取的字段、数量、排序或空值状态不一样。第二种是上下文不同:父容器宽度、主题变量、权限状态、语言或路由参数不一样。第三种是渲染时机不同:组件在首屏、懒加载区或异步数据返回后才出现,导致状态初始化顺序不同。

这三类的验收写法不一样。数据差异要用同一份输入对照;上下文差异要固定一组环境参数;时机差异要固定触发顺序。如果跳过分类直接写“组件显示异常”,验收样例会变成主观描述,不同角色仍然各说各话。

保留、改写、退出:三种取舍的适用前提

保留适用于差异只出现在个别页面的数据形态上,而组件本身在多数页面一致。此时不必改组件,只需在验收样例里标注这些页面的数据前提,例如“列表为空时”或“字段缺失时”。前提是这些差异是业务上允许的,而不是掩盖了真实缺陷。

改写适用于差异来自组件对外部环境的隐式依赖。比如组件默认假设父容器有固定宽度,或默认主题变量一定存在。此时应把依赖显式化:宽度由外部传入,缺省值写清楚。改写的验收样例要同时覆盖“传入”和“未传入”两种状态,确认未传入时也有确定行为。

退出适用于该组件在两个页面承担的目标根本不同。例如同一张卡片在一个页面用于摘要跳转,在另一个页面用于内嵌操作。硬用一套验收样例会逼着两个页面互相妥协。退出的前提是:确认这不是同一职责,且替换成本低于持续维护两套隐式规则的成本。退出不等于删除,可以保留其中一个页面的用法,另一个页面换用更贴近其目标的组件。

把分歧转成可核对样例的四个动作

  1. 固定对照页面。选两个差异最明显的页面,记录各自的路径参数、登录状态、语言和视口宽度。这一步的结果决定后续差异能否复现。
  2. 固定输入数据。为两个页面各准备一条可重复使用的数据,注明字段值和数量。如果拿不到稳定数据,先不要写验收样例,因为差异可能只是数据波动。
  3. 写观察点而不是结论。不要写“显示正常”,而写“标题最多两行、超出省略;操作区在标题下方;空数据时显示占位文案”。观察点要能被第三方独立核对。
  4. 标注预期差异与意外差异。预期差异是业务允许的,写进样例作为前提;意外差异是同一输入下不应出现的,写成待查项。这个区分直接决定下一步是改组件还是改数据。

一个注明假设的短例子

假设某组件在“文章列表页”和“作者主页”都用来展示条目,但列表页显示摘要,作者主页只显示标题。若把两处都按“显示摘要”验收,作者主页会被判为异常;若都按“只显示标题”验收,列表页又会被判为信息不足。

可核对的写法是:先声明两页的目标不同,因此摘要字段一处必填、一处可省略;再各取一条数据,记录标题行数、省略行为、空值占位和点击区域。核对后如果发现作者主页在标题为空时没有任何占位,而列表页有,这就是意外差异,应回到组件的空值分支处理,而不是继续争论“哪页才算正常”。

验收样例写完后,用它决定下一步

样例能稳定复现,说明差异来自组件逻辑或配置,下一步是改组件并补充对应状态的验收项。样例不能复现,优先检查数据来源、缓存和加载顺序,而不是先改组件。两种页面都符合各自样例,说明差异是设计意图,保留即可,但要把前提写进建站规划方案的验收清单,避免下次评审时重新争论。

如果同一分歧反复出现,说明缺的不是更多样例,而是组件职责边界没有写清楚。此时应先明确这个组件服务的目标,再决定是继续保留一套规则,还是让其中一个页面退出该组件的适用范围。

图1 图2

nginx