Насмешка над хэш-картой в testng - PullRequest
0 голосов
/ 17 января 2019

Я пишу контрольный пример для метода ниже

protected Map<String, Integer> getColumnToIndexMap(String[] columns) {
        Map<String, Integer> columnToIndexMap = Maps.newHashMap();
        for (int i = 0; i < columns.length; i++) {
            columnToIndexMap.put(columns[i], i);
        }
        return columnToIndexMap;
       }

Пожалуйста, дайте мне знать, если тестовый пример правильный

   @Test
   public void getColumnToIndexMapTest() {
     String[] columns = {"Item1","Item2"};
     Map<String, Integer> columnToIndexMap = Maps.newHashMap();
     for (int i = 0; i < columns.length; i++) {
       columnToIndexMap.put(columns[i], i);
   }
   Assert.assertTrue(columnToIndexMap.containsKey("Item2"));
   Assert.assertEquals(columnToIndexMap.get("Item2"), "1");
  }

1 Ответ

0 голосов
/ 17 января 2019

Ваш тестируемый метод возвращает карту, заполненную несколькими записями.Но ваш тест Junit не вызывает этот метод.Рассмотрим случай, когда тело метода getColumnToIndexMap() изменяется со временем, считаете ли вы, что ваши тестовые примеры все еще будут применяться?

Что, если getColumnToIndexMap() также использует удаление некоторых записей, будет ли проверка вашего покрытия обложки проверяться также?Нет, если вы не будете постоянно синхронизировать код в Junit с протестированным методом.Это высоко на обслуживании и никогда не рекомендуется.

...