SonarQube将“条件”覆盖率描述为:
在包含一些布尔表达式的每行代码上,条件覆盖率简单地回答以下问题:“每个布尔表达式都已经被评估为真和假吗?”这是在单元测试执行期间遵循的流程控制结构中可能分支的密度。
在包含一些布尔表达式的每行代码上,条件覆盖率简单地回答以下问题:“每个布尔表达式都已经被评估为真和假吗?”这是在单元测试执行期间遵循的流程控制结构中可能分支的密度。
http://docs.codehaus.org/display/SONAR/Metric+definitions
好的,但我怀疑他们的意思是“分支覆盖率”:
如果 (A || B || C)
测试 A=true 和 B=true 可以得出100%的结果,无需检查最后一个表达式(C)。同时只需测试两个分支——整个表达式的真和假分支,而不是每个表达式的真和假分支。这样对吗?
据我所知,条件覆盖应该检查表达式中的所有条件。