Я на «Якоко 0.8.0». У меня есть оператор switch с тестами для всех случаев. Jacoco помечает throw и break в каждом случае в операторе switch. Регистр и разрыв по умолчанию не отмечены. Почему он помечает их?
Я осмотрелся и нашел подобные сообщения, в которых говорится, что в предыдущих версиях не было фильтра для операторов switch: Почему JaCoCo не покрывает мои операторы переключения строк?
Но я запускаю 0.8.0, которая вышла после этого исправления, и проблема немного отличается.
МРЭ:
public class MyClass{
public void myMethod(String let) {
switch (let) {
case "A":
throw new Exception();
break;
default:
break;
}
}
}
Тесты для каждого:
@Test(expected = Exception.class)
public void testMyMethodA() {
MyClass class = new MyClass();
class.myMethod("A");
}
@Test(expected = Exception.class)
public void testMyMethodDefault() {
MyClass class = new MyClass();
class.myMethod("Z");
}
Пример флагов:
public class MyClass{
public void myMethod(String let) {
[YELLOW] switch (let) {
case "A":
[RED] throw new Exception();
[RED] break;
default:
break;
}
}
}
Jacoco помечает операторы throw и breaks как непроверенные. Он помечает коммутатор как частично протестированный. Я ожидал, что они будут покрыты.