SuperAPI AI 工具集

typescript-tests

测试与质量

查看项目

更新于 10-16 06:48

技能介绍

用途:在 TypeScript 与 TSX 测试任务中,应用、审查或解释该风格指南的测试约定,覆盖测试设计、审查与说明场景。

主要能力与工作流程:先检查使用仓库的测试运行器、库、约定与配置;仓库显式约定优先于本指南;只应用与当前任务相关的指导;当测试策略取决于风险、范围或维护成本时,说明重要权衡。边界方面,让测试运行器、TypeScript 和 ESLint 负责它们能自动强制执行的检查;不要仅因技能激活而新增或改写无关测试。相关指导提到可配合 typescript-functions 获取函数设计建议。

关键约定:保持测试简短、显式、易用,意图一眼可见;尽量遵循 AAA(Arrange 准备前置条件与输入、Act 执行待测动作且动作最少、Assert 验证结果且断言最少)。单元测试最好只失败于一个原因,但多断言可能提示坏味道。尽量保持函数纯净,非纯函数小而聚焦,便于通过传参和观察返回值测试,减少 mock。基于用户与应用的交互来测试业务逻辑,例如给定某角色或权限与输入,验证流程输出。测试应尽量隔离,不依赖执行顺序与共享的本地存储、session 存储、数据、Cookie 等,以加快运行、提升可复现性、便于调试并避免级联失败。测试应对变更具备韧性,采用黑盒测试,只测公开行为。查询 HTML 元素时优先使用不易变化的属性,优先级为 Testing Library 的 role、label、placeholder、文本内容、display value、alt 文本、title、test ID。涉及数据库要控制数据;对 staging 环境测试要确保其不变。

不要测试实现细节,重构时测试不应改变;不要重复测试库或框架;不强制 100% 覆盖率;不测试第三方依赖或外部链接、服务器、包;不要为测试而测试,每个测试都应提供有意义的信心。

测试描述必须遵循 it('should ... when ...') 命名,例如 it('should return parsed date as YYYY-MM when input is in ISO date format')。快照测试因脆弱且易导致“直接更新”心态而不被鼓励,仅在快照短小且清楚表达被测内容(如关键设计系统元素不应偏离)时可有强理由例外。