主要观点总结
本文主要介绍了Apple新的Swift Testing框架,该框架为Swift跨平台测试提供了现代化工具。文章涵盖了Swift Testing的关键特性,如参数化测试、并行化、宏的使用、trait的关联、测试套件的组织以及校验测试结果的方法。同时,本文还提及了Swift Testing框架的位置和所需环境,以及与XCTest的共存方式。
关键观点总结
关键观点1: Swift Testing框架简介及其主要特性
Swift Testing是Apple为Swift跨平台测试提供的新框架,它提供了富有表达力且直观的API。关键特性包括参数化测试、并行化、宏的使用、trait的关联、测试套件的组织以及校验测试结果的方法。
关键观点2: @Test宏的使用
开发人员可以使用@Test宏来声明测试名称和参数列表,并且可以为测试函数关联trait。例如,可以根据运行时条件启用或禁用测试、限制测试运行时间、串行或并行运行测试等。
关键观点3: 参数化测试的优势
参数化测试允许使用多个输入值进行测试,并清楚地指出失败时的输入。这有助于在只有少量输入值失败时,避免对所有可能的输入值组合运行测试。
关键观点4: Swift Testing的位置和所需环境
Swift Testing位于GitHub和Swift Package Index上,需要Swift 6环境。它与XCTest可以共存于同一项目中。
关键观点5: 测试和主可执行文件的区别
在构建发布版本时,测试函数不会从二进制文件中剥离出来。因此,建议将测试库导入测试目标,而不是与主可执行文件链接在一起。
文章预览
尽管 XCTest 仍是在 Xcode 中创建测试的首选方式,但新的 Swift Testing 框架试图为测试的定义引入一个富有表达力且直观的 API,它适用于支持 Swift 的所有平台。该框架还支持参数化、并行化、分类以及将测试与缺陷关联起来。 Swift Testing 广泛使用了宏,以此来提供声明复杂行为的惯用方式。例如,我们可以像这样声明一个测试,其中包含了一个名称和一组要运行的备选输入: import Testing ... @ Test ( "Sample test" , arguments: [ "input string 1" , "input string 2" , "input string 3" ]) func sampleTest (sampleInput: String) { ... } 上述的测试会执行三次,每次调用都会通过 sampleInput 接受一个我们所提供的参数。在进行参数化测试时,还可以处理多个输入。在这种情况下,我们会为 @Test 的 arguments 提供一个集合列表,测试函数将在两个集合中选取每个集合中可能的参数
………………………………