2017-04-11 131 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