我正在使用 Jacoco 并看到一些奇怪的行为,其中我的测试覆盖率远低于我的预期。
例如我有这个代码正在测试中
class utils{
//4 of 8 branches missed
boolean booleanMethod(int integer) {
//2 of 4 branches missed
return integer==0
}
}
这些是测试条件。
@Test
void testBooleanMethodReturnsFalse() {
boolean retVal =utils.booleanMethod(-1)
assertThat(retVal).isFalse()
}
@Test
void testBooleanMethodReturnsTrue() {
boolean retVal =utils.booleanMethod(0)
assertThat(retVal).isTrue()
}
我相信我已经涵盖了真实和错误的情况,但 Jacoco 说该方法错过了 8 个分支中的 4 个,return 语句错过了 4 个分支中的 2 个。
谁能解释为什么会这样,我应该怎么做才能获得 100% 的覆盖率?