【发布时间】:2019-08-09 19:29:07
【问题描述】:
我为我的单元测试启用了代码覆盖率,但对于一个结构,我不能完全达到 100%,即使我相信我正在测试所有可能的代码路径。
我的结构有一个计算属性定义为:
var nativeSize: CGSize {
if rotated {
return targetRect.size.rotated
} else {
return targetRect.size
}
}
(这里,targetRect 是同一结构的存储属性,类型为 CGRect,self.rotated 是存储布尔属性,self.size.rotated 是 CGSize 扩展中的计算属性返回与width 和height 互换的副本)
我的单元测试代码创建了结构的两个实例,一个将rotated 设置为true,另一个将其设置为false,并在每个实例中访问此nativeSize 属性(以涵盖两个代码路径) , 断言它们与期望值相等。
但是,我只获得了 95.5% 的结构覆盖率。在代码编辑器上,它是这样突出显示的:
(这是整个源文件中唯一的红色区域)
这是 Xcode 错误,还是我遗漏了什么?
【问题讨论】:
标签: swift xcode unit-testing code-coverage