【问题标题】:Xcode - Strange Code Coverage of Swift Computed PropertyXcode - Swift 计算属性的奇怪代码覆盖率
【发布时间】:2019-08-09 19:29:07
【问题描述】:

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

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

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

(这里,targetRect 是同一结构的存储属性,类型为 CGRectself.rotated 是存储布尔属性,self.size.rotatedCGSize 扩展中的计算属性返回与widthheight 互换的副本)

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

但是,我只获得了 95.5% 的结构覆盖率。在代码编辑器上,它是这样突出显示的:

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

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

【问题讨论】:

标签: swift xcode unit-testing code-coverage


【解决方案1】:

我会说这是一个错误

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

但是,如果我将语法更改为等效的单行,则覆盖率会达到 100%。

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

【讨论】:

    猜你喜欢
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    相关资源
    最近更新 更多