如何使用 XCTest 使用 #available 语句覆盖所有功能分支
Posted
技术标签:
【中文标题】如何使用 XCTest 使用 #available 语句覆盖所有功能分支【英文标题】:How to cover all branches of function with #available statement with XCTest 【发布时间】:2020-08-13 14:14:39 【问题描述】:我有一个带有#available 语句的函数,并希望通过使用 XCTest 的单元测试覆盖所有分支。这可能吗?
func foo() -> String
if #available(ios 13, *)
// Compute something using new iOS 13 API
else
// Compute it the old way
【问题讨论】:
【参考方案1】:您可以在运行测试时选择安装了所需操作系统的其他目标模拟器
【讨论】:
那只会覆盖另一个分支,因此不会给我想要的 100% 代码覆盖率。同样在 CI 管道中,我无法确定是否安装了 iOS 版本较低的模拟器。 您可以在目标上多次运行测试。检查man xcodebuild
。要准备模拟器,请使用xcrun simctl
。以上是关于如何使用 XCTest 使用 #available 语句覆盖所有功能分支的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 XCTest 框架测试基于 REST 的原生 iOS 应用程序?