该技能用于以测试驱动开发(TDD)方式构建功能或修复缺陷,核心是红-绿-重构循环。
用途与理念:测试应通过公共接口验证行为,而非实现细节。好的测试是集成风格的,走真实代码路径,像规格说明一样描述系统“能做什么”;它们能在重构后存活。坏的测试耦合实现——mock 内部协作者、测试私有方法或绕过接口直接查数据库;典型警告信号是行为未变但重构后测试失败。相关示例见 tests.md,mock 准则见 mocking.md。
反模式:禁止水平切片,即先写完所有测试再写所有实现。批量测试测的是想象中的行为、数据结构和函数签名,对真实变化不敏感。正确做法是纵向切片(曳光弹):一个测试 → 一个实现 → 重复,每个测试根据上一轮所学调整。
工作流程:1)规划:写代码前与用户确认接口变更、优先测试哪些行为、识别深模块机会、为可测试性设计接口、列出行为清单并获批准。2)曳光弹:写一个测试确认一件事,失败后写最小代码使其通过,证明端到端路径可行。3)增量循环:对每个剩余行为重复“写测试→失败→最小实现→通过”,一次一个测试,只写够通过当前测试的代码,不预判未来测试,聚焦可观察行为。4)重构:全部测试通过后寻找重构点,如消除重复、加深模块、应用 SOLID、审视新代码对旧代码的启示,每步重构后跑测试;绝不在 RED 状态重构。
每轮检查清单:测试描述行为而非实现;仅使用公共接口;能经受内部重构;代码对当前测试最小化;不添加投机性功能。
限制:资料未提供具体安装命令、平台要求、收费或价格信息,实施时需依据项目自身测试框架与语言环境。