SuperAPI AI 工具集

axiom-testing-async

测试与质量

查看项目

更新于 10-15 20:12

技能介绍

用途:在 Swift Testing 框架下编写异步代码测试,包括 async 函数、基于回调的 API、MainActor 隔离代码,以及从 XCTest 迁移异步测试。

主要能力:提供多种模式,如简单 async 函数测试、用 withCheckedThrowingContinuation 包装无 async 重载的回调 API、用 confirmation 验证回调触发次数(含 expectedCount 与 0 次)、@MainActor 测试、.timeLimit 超时控制、#expect(throws:) 验证抛错、#require 解包可选值、参数化异步测试。

与 XCTest 差异:XCTestExpectation 对应 confirmation、wait(for:timeout:) 对应 await confirmation、@MainActor 由隐式改为显式、默认由串行改为并行、XCTAssertEqual 对应 #expect、continueAfterFailure 对应逐项 #require。

用法要点:回调测试用 await confirmation { confirm in ... },多次触发用 expectedCount;共享可变状态应放入 struct 让每个测试获得新实例,需顺序执行时用 @Suite(.serialized);避免用 Task.sleep 等待事件,UI 相关测试显式标注 @MainActor。

适用场景:Swift Testing 项目中的异步单元测试与迁移。限制:仅 XCTest 项目应使用 XCTestExpectation,UI 自动化用 XCUITest,带指标的性能测试用 XCTest。

资源:WWDC 2024-10179、2024-10195,文档 /testing、/testing/confirmation,相关技能 axiom-swift-testing、axiom-ios-testing。