-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Labels
Description
Steps to reproduce
- JaCoCo version: 0.8.14
- Java 25
- Operating system: Linux Ubuntu
- Tool integration: Maven
In the following example, letter method is not seen as totally covered.
public sealed interface Coverage {
record A() implements Coverage {}
record B() implements Coverage {}
record C() implements Coverage {}
default String letter(){
return switch (this){
case A _ -> "A";
case B _, C _ -> "Z";
};
}
default String name(){
return switch (this){
case A _ -> "record A";
case B _ -> "not record A";
case C _ -> "not record A";
};
}
}class CoverageTest {
@Test
void shouldBeAForA(){
assertThat(new Coverage.A().letter()).isEqualTo("A");
}
@Test
void shouldBeZForB(){
assertThat(new Coverage.B().letter()).isEqualTo("Z");
}
@Test
void shouldBeZForC(){
assertThat(new Coverage.C().letter()).isEqualTo("Z");
}
@Test
void shouldBeRecordAForA(){
assertThat(new Coverage.A().name()).isEqualTo("record A");
}
@Test
void shouldNotBeRecordAForB(){
assertThat(new Coverage.B().name()).isEqualTo("not record A");
}
@Test
void shouldNotBeRecordAForC(){
assertThat(new Coverage.C().name()).isEqualTo("not record A");
}
}
Expected behaviour
100% coverage for all methods.
Actual behaviour
Missing 1 of 4 branches for letter method
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Awaiting triage