项目测试
用稳定的测试证明请求中的可观察行为。任务模式与授权遵循仓库行动规则,项目命令和验证范围使用仓库声明的入口。
确定测试目标
先明确需要证明的行为或契约,并检查现有测试是否已有充分证据。补齐缺失信息时,命令查脚本,环境查配置与依赖,行为查公开入口、相关调用链和相邻测试。
以输入、可观察结果和真实边界定义场景。人类阅读内容的措辞调整可直接审阅;键集合、占位符、格式、解析、加载、选择与回退等机器契约按其行为验证。产品运行时指令改变 Agent 行为时,依据明确的行为目标和已有评估入口选择验证方式。
修复可稳定复现的缺陷时,保留修复前因预期原因失败、修复后通过的回归证据;无法可靠重现时说明已有证据和缺口。整理测试以业务行为保持不变为完成依据。
选择观察与隔离
| 目标 | 适合的观察入口 |
|---|---|
| 规则、转换、校验 | 公开函数的结果与错误 |
| 组件、Hook、Context | 用户可操作的 DOM、公开状态、回调或返回值 |
| 存储、文件系统、适配器 | 真实协作者的公开结果与持久化状态 |
| API、事件、前后端载荷 | 生产者实际输出与消费者处理结果 |
| 宿主、进程、浏览器特有行为 | 能覆盖具体环境风险的集成或 smoke |
- 断言依据:优先断言公开结果。参数和次数本身属于协议、计费、幂等或调度契约时,可以断言调用。
- 精确值:协议、格式、迁移、兼容、安全或明确产品要求可提供独立预期。可调预设按关系、边界和消费行为验证;只有实现字面量可供复制时,重新判断测试价值。
- 协作者:运行快速、确定且适合场景的真实逻辑;远程服务、时间、随机数、系统接口或昂贵资源需要隔离时使用 fake、stub 或 mock。涉及数据库方言、锁、文件权限等真实语义时选择对应环境。
- 副作用与异步:使用临时目录、测试数据库和明确提供的测试环境。每个测试负责状态隔离与清理,等待有界的完成信号;使用 fake timer、手动挂载或后台任务时恢复计时器、卸载并回收资源。
- 界面:优先使用项目已有交互工具和用户可见语义。像素布局、裁剪、响应式等结果需要浏览器或视觉证据时,选择对应验证。
调整与验证
测试组织遵循仓库约定,让行为与失败原因易于定位;夹具和 helper 放在实际共享范围。改善可测性时可分离真实副作用、收口重复逻辑,保留公开默认值、错误和持久化语义。
从当前实现的目标测试取得证据,共享逻辑或契约变化时覆盖直接受影响的调用者;验证范围与完成条件按仓库验证入口执行。
失败区分本次引入、既有失败、环境缺口和不稳定失败,归因须有基线、日志或缺失依赖等证据。疑似不稳定时为确认重复性做有限重跑并记录频次;修复应解释失败原因并保留有效断言。
交付说明目标行为的证据、实际命令与结果,以及有依据的失败分类和未验证范围。审查结论明确区分候选信号与已确认问题。
按需参考
- 审查、合并、清理或重构已有测试时,读取 测试审查与整理。
- 变更跨层契约、通信或宿主协作行为时,读取 跨边界测试。