2017-04-11 196 views
1

我的代码剪断:JaCoCo内分支覆盖

@Override 
public Object put(String key, Object value) { 
    checkNotNull(key); 
    return map.put(key, value); 
} 

public static <T> T checkNotNull(T reference) { 
    if (reference == null) { 
     throw new NullPointerException(); 
    } 
    return reference; 
} 

方法put没有分支机构,并checkNotNull前提有二 如果我将调用put("key", new Object());我会分支机构的全覆盖。但在语义上put有2个分支 - 一个在方法本身和2个嵌套。

有可能检索所有内部分支的“真实”分支机构覆盖率?

回答

0

我没有看到任何问题。 jacoco报告显示了50%的分支覆盖率(请参阅“MyClass”或“checkNotNull()”)。请注意,复杂度为1的方法没有分支覆盖。无论该方法是否被调用(“put”)或不(“notCalled”)。

enter image description here

enter image description here

+0

感谢响应。是的,我同意在这种情况下,它会起作用,但是如果我有2个方法'put(String,Object)'和'put2(String,Object)'并且测试我只检查'put(null,new Object())'和'put2(“string”,new Object())'覆盖率将为100%,但每个方法将仅覆盖1个测试用例 – dimonina