【发布时间】:2016-05-05 17:31:44
【问题描述】:
所以我了解到分支覆盖与决策覆盖不同,因为分支覆盖通常还包括无条件分支,例如方法调用,在 C# 中使用 throw、break 和其他关键字。 但我想知道,这种分支覆盖是否真的用在代码分析器中?我怀疑他们使用决策覆盖,确保所有决策结果(即结果分支)都被覆盖。 我的意思是,以下代码有 2 个条件分支,但有 5 个无条件分支:
if(A)
B();
C();
D();
E();
else
X();
而且我相信,如果我编写一个测试来评估 A 为假,代码分析器会告诉我分支覆盖率为 50%。但从无条件分支的角度来看,将不会执行更多。 对吗?
【问题讨论】:
-
这真的取决于分析仪。 dotCover 将识别测试命中的代码行,因此可用于确定是否将执行所有可能的代码行。
-
@drz:OP 没有询问 line 的覆盖范围。他询问了分支与决策覆盖率。
标签: branch code-coverage code-analysis control-flow