Scoverage: Ambiguous measurement from branch coverage

779 Views Asked by At

I have noticed that all the tests with no control-flow (such as if, else, switch, etc) shows 100% branch coverage due to no branch present in the code block. For example

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

Shows 100% branch coverage and 0 % statement coverage. This is due to 0/0 branch covered. From my eyes, I see one branch in above test case, so shouldn't there be one branch even if there is no control flow?

1

There are 1 best solutions below

4
On BEST ANSWER

I guess its semantics. The code can only follow one path - so it can never "branch". Or do you consider the whole thing to be one branch.

If you have a train track which is a straight line, how many branches does it have ?

Does this have 2 branches, or 3 ?

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

At the very least I think we could update scoverage so that your example is 100% branch coverage, but should it say 0 branches or 1...