Я пытался разобраться в модульном тестировании equals
метода в Java, чтобы охватить все ветви.Отсутствует одна ветка.Я попытался найти пару ресурсов , но это не очень помогло.Вот мой код, который я пытаюсь выполнить модульным тестом.
public boolean isValid(Item item) {
return !StringUtils.isEmpty(item.getCat()) && //both branches covered
!StringUtils.isEmpty(item.getDog()) && //both branches covered
!StringUtils.isEmpty(item.getDogCat()) && //both branches covered
(String.format("%s|%s", item.getDog(), item.getCat()) //here one branch missing
.equals(item.getDogCat());
}
Модульный тест:
boolean expectedValue = false;
private static final Item ITEM_4 =
Item.builder()
.dogCat("bow|meow")
.dog("bow")
.cat("meow")
.build();
@Test
public void testIsValidWhenCatIsNull() {
boolean actualValue = itemValidator.isValid(ITEM_1);
Assert.assertEquals(expectedValue, actualValue);
}
@Test
public void testIsValidWhenDogIsNull() {
boolean actualValue = itemValidator.isValid(ITEM_2);
Assert.assertEquals(expectedValue, actualValue);
}
@Test
public void testIsValidWhenDogCatIsNull() {
boolean actualValue = itemValidator.isValid(ITEM_3);
Assert.assertEquals(expectedValue, actualValue);
}
@Test
public void testIfDogCatMatchesConcatenatedDogCat() {
itemValidator.isValid(ITEM_4);
Assert.assertEquals(String.format("%s|%s" ,"bow", "meow"), ("bow|meow"));
}
@Test
public void testIfDogCatDoesNotMatchesConcatenatedDogCat() {
itemValidator.isValid(ITEM_4);
Assert.assertNotEquals(String.format("%s|%s", "bow", "meow"), ("bow|whoop"));
}
Мир модульного тестирования для меня нов, любая помощь приветствуется.