我已经为我的单元测试启用了代码覆盖,但是对于一个结构我不能完全达到 100%,即使我相信我正在测试所有可能的代码路径。
我的结构有一个计算属性定义为:
var nativeSize: CGSize {
if rotated {
return targetRect.size.rotated
} else {
return targetRect.size
}
}
(此处,targetRect
是同一结构的存储属性,类型为 CGRect
,self.rotated
是存储的 bool 值属性,self.size.rotated
是 CGSize
扩展中的计算属性,它只是返回 width
和 height
互换的副本)
我的单元测试代码创建了结构的两个实例,一个带有 rotated
设置为 true
另一个设置为 false
,并访问此 nativeSize
每个属性(覆盖两个代码路径),断言它们与预期值相等。
但是,我对该结构的覆盖率仅为 95.5%。在代码编辑器上,它突出显示如下:
(这是整个源文件中唯一的红色区域)
这是 Xcode 错误,还是我遗漏了什么?
最佳答案
关于swift - Xcode - Swift 计算属性的奇怪代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55238145/