文字列に基づいて変化するJava 7内のswitch文を書いています。コードとテスト自体はかなり些細なことですが、何らかの理由で Cobertura (および Eclemma) の両方が、switch 内のブランチを見逃したことを示しています。
次のコードは、10 個のブランチのうち 3 個を見逃したことを示しています。
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% の分岐カバレッジを得られないのはなぜですか?