2
我在java 7中編寫一個switch語句,它根據字符串而變化。代碼和測試本身並不重要,但由於某種原因,Cobertura(和Eclemma)都表示我錯過了交換機內的分支。Java 7 cobertura代碼分支覆蓋字符串開關語句
下面的代碼表明我已經錯過了3 10的分支:
public String decodeQuestionResponseType(final String questionResponseType){
switch (questionResponseType) {
case "multipleChoiceResponse":
return "multipleChoice";
case "textResponse":
return "text";
case "photoResponse":
return "photo";
default:
return "none";
}
}
@Test
public void testDecoder(){
assertEquals("multipleChoice", decodeQuestionResponseType("multipleChoiceResponse"));
assertEquals("text", decodeQuestionResponseType("textResponse"));
assertEquals("photo", decodeQuestionResponseType("photoResponse"));
assertEquals("none", decodeQuestionResponseType("otherResponse"));
}
我可以寫使用if/else語句和測試將通過。有什麼我失蹤?爲什麼我無法獲得此代碼的100%分支機構覆蓋率?
關於EclEmma你可以看看這個答案:http://stackoverflow.com/a/28015212/584532 – nrainer