用途:面向 Swift 项目的测试实践指南,重点是用 Apple 的 Swift Testing 框架(WWDC 2024 引入)编写快速、可靠、表达力强的单元测试,并通过架构调整减少对模拟器和 App 启动的依赖。
主要能力:以 @Test 宏替代命名约定,断言统一用 #expect,#require 用于失败即停止;@Suite 以 struct 组织测试,每个测试使用新实例;支持参数化测试、标签(Tag)、traits(禁用、条件执行、时间限制、bug 引用);错误断言可指定任意错误、错误类型或具体错误值;异步测试支持 async/await、withCheckedThrowingContinuation 和 confirmation;可用 withKnownIssue 标记已知问题。
使用方式:测试可用 swift test 在 Swift Package 中运行,无需启动模拟器;也可将逻辑放入 framework 并把 Host Application 设为 None;无法拆分时可在 @main 中检测测试环境跳过 UI 启动。并发测试默认并行,仅在共享可变状态时使用 .serialized。条件不确定的异步测试可借助 swift-concurrency-extras 的 withMainSerialExecutor,时间相关逻辑可用 swift-clocks 的 TestClock 控制。
适用场景与限制:适合纯逻辑、模型、算法、框架代码与异步代码的单元测试;UI 测试、性能测试、Objective-C 测试仍需 XCTest,两套框架可在同一 target 共存并渐进迁移。文中未提供该技能的具体安装命令、收费与平台信息。