用途:为 Swift 项目设计高价值测试,适用于 XCTest 与 Swift Testing 两种框架,覆盖单元、组件、集成、契约、端到端、属性、性能与回归等测试类型。核心理念是测试用于证明可观察契约,覆盖率只是结构性辅助证据,不等同于行为正确性。
主要能力与设计要点:每个测试应说明其保护的源测试、契约、缺陷、风险或事故;断言应覆盖值、类型化错误、顺序、状态转换、副作用、字节、清理与公开生命周期行为。优先使用真实值与受控假件,仅在协作方昂贵或不确定时才使用 mock。迁移时保留每个参数化源用例的身份,即使 Swift 将多个用例归入一个测试声明。异步测试使用 expectation、continuation、时钟或事件驱动钩子并设置有限超时,避免固定 sleep。契约测试可复用同一套一致性套件于各适配器,再补充适配器特有的失败与生命周期用例。CI 中应测试所有声称支持的平台或条件,条件编译也属于行为面。
分层:单元层测本地算法与值契约;组件层测单一目标及其自有协作方;集成层测文件系统、数据库、网络协议、C/Objective-C 桥接;契约层测所有提供者/适配器共享的需求;端到端层测经生产组合的公开工作流;<project>-test 层负责整项目迁移一致性与差分验收。
迁移规则:生产目标保留本地测试;专用 <project>-test Package 或清晰分离的集成目标负责复制的 Java fixture、跨目标场景、Java/Swift 运行器、归一化与完整差分报告,两层不可互相替代。
使用方式:运行 swift test,覆盖率可用 swift test --enable-code-coverage;按风险加入 sanitizer、Thread Sanitizer、性能、模糊/属性、兼容性或负载门禁。限制:不要用琐碎断言虚增覆盖率;资料未提供具体价格、平台支持范围或安装步骤。