0

我注意到所有没有控制流的测试(例如 if、else、switch 等)都显示 100% 的分支覆盖率,因为代码块中不存在分支。例如

def foo = {
println("Hello World!") 
}

显示 100% 的分支覆盖率和 0% 的语句覆盖率。这是由于覆盖了 0/0 分支。在我看来,我在上面的测试用例中看到了一个分支,所以即使没有控制流也不应该有一个分支吗?

4

1 回答 1

1

我猜它的语义。代码只能遵循一条路径 - 所以它永远不能“分支”。或者你认为整个事情是一个分支。

如果你有一条直线的火车轨道,它有多少个分支?

这有 2 个分支还是 3 个?

def foo = {
  if (b) 
   println("1")
  else
   println("2)
}

至少我认为我们可以更新覆盖率,以便您的示例是 100% 的分支覆盖率,但它应该说 0 个分支还是 1...

于 2014-08-09T23:07:26.000 回答