我已经为单元测试启用了代码覆盖率,但是对于一个结构,即使我相信我正在测试所有可能的代码路径,我也无法达到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的错误,还是我遗漏了其他内容?