该技能用于在重构前为现有代码生成特征测试,记录代码当前实际行为而非理想行为,从而形成回归安全网,尤其适合用 AI 修改代码时使用。
触发场景:用户说要重构、希望在改代码前加测试、请求特征测试或金标准测试、想安全修改某个类或模块、提到遗留代码或未测试代码、想用 AI 重构但担心破坏功能时启用。
核心流程分五阶段:一是用 **/*.swift 与类、结构、枚举、协议、函数声明等搜索发现被测代码,识别公开类型与方法、输入返回类型、副作用(网络、磁盘、UserDefaults、通知)、依赖与状态变更;二是将每个公开方法分类为纯计算、状态变更、异步操作、副作用、事件发送、错误路径,并对应不同测试策略;三是生成测试,用 import Testing 与 @testable,采用 @Suite("Characterization: X") 命名,附纯计算、状态变更、带依赖异步、副作用、错误路径、边界情况等模板;四是回读源码并追踪逻辑,填入代码实际返回值,并注释异常行为,避免写成期望值;五是运行全部测试确保通过,失败则修正断言以匹配实际行为,可用 @Tag(.characterization) 标记并用 xcodebuild test -only-testing 选择性运行。
输出包含被测模块与类、测试数量、覆盖摘要表、生成文件、发现的反常行为以及是否可安全重构。不适用场景:代码已有良好测试、准备删除代码、代码过于简单、或本意是改变行为(应改用 tdd-bug-fix)。