SuperAPI AI 工具集

unit-testing

测试与质量

查看项目

更新于 10-16 04:29

技能介绍

用途:为编写单元测试、改进测试质量、组织测试用例提供系统化指导,也可作为可执行文档长期维护行为预期。

主要能力:讲解单元测试定义与关键属性(可读、隔离、可靠、简单、快速、及时);核心原则包括隔离(不连数据库、文件系统、网络 API 或第三方服务,用测试替身替换外部依赖)、确定性(消除时间、日期、语言环境、可变共享状态、执行顺序依赖)、一个测试只验证一个关注点、测试代码与生产代码同等对待。

结构模式:采用 Arrange-Act-Assert 三段式;每个测试方法只有一个 Act;命名采用 MethodName_StateUnderTest_ExpectedBehavior,如 Add_TwoPositiveNumbers_ReturnsCorrectSum;避免硬编码魔法值,改用命名常量;共享配置抽取为工厂或辅助方法。

隔离策略:区分 stub、mock、spy、fake、dummy 的用途;验证返回值或状态变化时用 stub 和 fake,验证与依赖交互时用 mock 和 spy。避免耦合私有方法、内部状态或内部调用顺序等实现细节,改为通过公共接口测试可观察结果。

质量属性:测试速度阈值约 75–100ms;保持低圈复杂度,测试中不写 if/for/while,多场景用参数化测试;不在测试中复制生产算法;覆盖正向、负向、边界用例,代码覆盖率 70–80% 为实用基线;每个测试后做环境恢复(删临时文件、重置共享状态、关闭连接)。

流程集成:在 CI/CD 中每次代码变更自动运行单元测试;可采用 TDD 先写失败测试再补最小实现再重构。可测性架构包括依赖注入、单一职责、纯函数、避免全局可变状态;写测试困难应视为重构信号。

常见陷阱:测试逻辑复杂、一个测试多个 Act、测试实现细节、非确定性测试、魔法字面量、镜像实现逻辑、测试缓慢、缺少清理。详细测试替身与模式可参阅 references/test-doubles.md 和 references/test-patterns.md。

限制:资料未提供具体编程语言的测试框架、安装命令或代码示例,也未说明价格与平台支持信息。