我有一个关于EclEmma覆盖工具的问题,
EclEmma覆盖工具是否执行节点或边缘、条件或路径覆盖?解释
谢谢
发布于 2017-02-06 08:57:54
EclEmma -是基于的Eclipse,称为JaCoCo,用于分析Java字节码。JaCoCo 可以在其文档中找到提供的覆盖计数器的说明。正如您在其中看到的,JaCoCo和EclEmma提供了
不知道什么叫节点覆盖,我猜你所谓的边缘覆盖-是分支覆盖。
关于条件覆盖- 维基百科说
如果(a & b) { /* . */ } 条件覆盖可以由两个测试(
a=true, b=false,a=false, b=true)来满足。
在&&是短路操作员的情况下,似乎有点奇怪的是,第二次测试不能触发检索"b“的值。
关于路径覆盖- JaCoCo不提供它,可以使用以下示例演示什么:
void fun(boolean a, boolean b) {
if (a) { /* ... */ }
if (b) { /* ... */ }
}不算异常,通过此方法有4条路径。因此,对于完整的路径覆盖,需要4个测试- a = true, b = true、a = true, b = false、a = false, b = true和a = false, b = false。然而,JaCoCo和EclEmma只需进行两次测试-- a = true, b = true和a = false, b = false,就会报告100%的覆盖率。
https://stackoverflow.com/questions/42049091
复制相似问题