次のコードを検討してください。
@Test
public final void testIsUnitInvalidSadCase() {
boolean expectedResult = false;
boolean actualResult = false;
double invalidUnit = 0.0;
testFuelUnitValidator =
new FuelUnitValidator(
defaultTimestamp,
defaultFluids,
invalidUnit);
actualResult = testFuelUnitValidator.isUnitInvalid();
assertThat(actualResult, is(equalTo(expectedResult)));
}
@Test
public final void testIsUnitInvalidHappyCase() {
boolean expectedResult = false;
boolean actualResult = true;
double invalidUnit = 0.02;
testFuelUnitValidator =
new FuelUnitValidator(
defaultTimestamp,
defaultFluids,
invalidUnit);
actualResult = testFuelUnitValidator.isUnitInvalid();
assertThat(actualResult, is(equalTo(expectedResult)));
}
これは方法です:
public boolean isUnitInvalid() {
if (Math.abs(unit) < 0.0) {
return true;
}
return false;
}
行を as に変更し、最初のテストのif (Math.abs(smu) <= 0.01)
ようにテスト クラスを変更するとboolean expectedResult = true;
、maven が正常にビルドされます。しかし、上記のコードでビルドしようとすると、maven は次のようなエラーをスローします。
[ERROR] *className failed check. Branch coverage rate of 95.8% is below 100.0%
*className failed check. Line coverage rate of 97.8% is below 100.0%