用途:Swift Testing 是新 Swift 代码中编写单元测试与集成测试的标准方式,适用于 Xcode 16+ 项目,覆盖领域逻辑、ViewModel、服务、解析器等。它不替代界面自动化,UI 流程仍用 XCUITest(XCTestCase),性能指标(XCTMetric)也仍留在 XCTest。
主要能力:用 import Testing 编写测试;@Test 标注测试函数,可加显示名;#expect 做软断言,#require 做硬前置(失败即终止);@Suite 组织测试并配合 .tags、.enabled(if:)、.disabled、.timeLimit 等 traits;支持参数化测试(@Test(arguments:))、原生 async/await,默认并行执行。
使用方式:优先测试 ViewModel(负载中、成功、错误、授权)、领域用例与策略、解码/校验/格式化,以及回归用例。UI 测试只覆盖登录、结账、创建核心实体等关键路径。用协议加 fake 替代动态 mock,单元测试不访问真实网络或磁盘;并行执行时避免共享可变全局状态。UI 测试通过稳定的 accessibility identifier 定位元素,使用 waitForExistence 而非固定 sleep,用启动参数注入测试账号与跳过引导。
迁移与限制:新单元测试用 Swift Testing,UI 与性能测试保留 XCTest,二者可在同项目不同 target 共存,避免一次性大重构。不要在同一测试中混用 #expect 与 XCTAssert。文档未提供具体安装命令、价格或平台细节。