Почему это утверждение не помечено как полностью покрытое эклеммой? - PullRequest
1 голос
/ 14 декабря 2010

Я использую EclEmma в Eclipse (точнее, RSA 8). В моем коде есть следующее утверждение:

public static boolean isEmpty(Collection collection) {
    return (collection == null) || collection.isEmpty();
}

и у меня есть следующие тесты:

@Test public void isEmpty_nullCase() {
    assertTrue(CollectionUtil.isEmpty(null));
}
@Test public void isEmpty_listCase() {
    assertTrue(CollectionUtil.isEmpty(new ArrayList()));
}

но по какой-то причине заявление показывается желтым. Какую часть этого я не тестирую?

Спасибо, Питер

Ответы [ 2 ]

2 голосов
/ 14 декабря 2010

Как насчет ArrayList, который имеет значение и поэтому не пуст?

0 голосов
/ 15 июля 2012

Добавьте следующий контрольный пример:

@Test
public void checkNonNullNonEmpty(){
   Assert.assertFalse(CollectionUtil.isEmpty(new ArrayList<String>(){
    {
      add("blah blah blah....!");
    }
  });
}

Вы проверяли только истинные условия.В идеале есть 4 возможных комбинации оператора return (collection == null) || collection.isEmpty(); .1-е условие может быть T / F, а 2-е может быть T / F.Итак, всего 4 возможности.Вы покрыли только 3.Приведенный выше тестовый случай будет охватывать ненулевое непустое возможность.

...