【发布时间】:2017-10-02 00:17:19
【问题描述】:
为什么会这样, 如果只对函数 B 进行单元测试,则函数 A 的覆盖率为 50%。 即使我们将函数 B 的值设为 (1,2,3) 它会覆盖第一个函数的 if 和 else,但为什么覆盖率仍然是 50%?
Public int A(int a,int b)
{
if (a%2==0)
return a;
else
return b;
}
Public int B (int a,int b,int c)
{
int val=A(a,b);
val=A(val,c);
}
【问题讨论】:
-
静态代码分析不能跨语义块。那就是该工具无法从
B检测到通过A的代码路径。 -
如果我们在纸上进行代码覆盖怎么办?就像空跑一样。
-
这和c#或c++有什么关系?
-
不要垃圾标签。
标签: java c# c++ code-coverage