swift - Xcode - Swift 计算属性的奇怪代码覆盖率

标签 swift xcode unit-testing code-coverage

我已经为我的单元测试启用了代码覆盖,但是对于一个结构我不能完全达到 100%,即使我相信我正在测试所有可能的代码路径。

我的结构有一个计算属性定义为:

var nativeSize: CGSize {
    if rotated {
        return targetRect.size.rotated
    } else {
        return targetRect.size
    }
}

(此处,targetRect 是同一结构的存储属性,类型为 CGRectself.rotated 是存储的 bool 值属性,self.size.rotatedCGSize 扩展中的计算属性,它只是返回 widthheight 互换的副本)

我的单元测试代码创建了结构的两个实例,一个带有 rotated设置为 true另一个设置为 false ,并访问此 nativeSize每个属性(覆盖两个代码路径),断言它们与预期值相等。

但是,我对该结构的覆盖率仅为 95.5%。在代码编辑器上,它突出显示如下:

enter image description here

(这是整个源文件中唯一的红色区域)

这是 Xcode 错误,还是我遗漏了什么?

最佳答案

我会说这是一个错误

我在 Xcode 10.2 中复制了您的代码,我得到了相同的行为。

enter image description here

但如果我将语法更改为等效的一行代码,覆盖率将达到 100%。

enter image description here

我建议你打开一个雷达。我也会这样做。

关于swift - Xcode - Swift 计算属性的奇怪代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55238145/

相关文章:

swift - xcschememanagement.plist 文件在 XCode 中有什么作用?我可以用 git 忽略它吗?

ios - 从自定义 UITableViewHeaderFooterView 获取 tableView

ios - 在 Swift 中连续绘制 UIBezierPath 期间消除滞后延迟

ios - Xcode 分析工具调用树无法识别我的源代码

c# - 从同一解决方案中的不同测试项目引用项目中的 C# 命名空间

ios - 如何在 SwiftUI 中位于 Apple Files App 的文件夹中写入文件?

IOS-垂直向上移动多个图像

ios - 从 UITableViewController 中的按钮创建操作

python - 更改由 nose 测试生成器创建的测试的名称

javascript - 涉及 DOM 的单元测试 Javascript