Итак, у меня есть такой метод:
public static List<Metrics> buildByColumnName(InputStream is, Class<? extends Metrics> clazz) {
List<Metrics> metrics = null;
MappingStrategy<Metrics> ms = new HeaderColumnMappingStrategy<>();
ms.setType(clazz);
try {
Reader reader = new BufferedReader(new InputStreamReader(is));
CsvToBean<Metrics> cb = new CsvToBeanBuilder<Metrics>(reader).withType(clazz).withMappingStrategy(ms).build();
metrics = new ArrayList<>(cb.parse());
reader.close();
} catch (Exception e) {
LOGGER.error("Error building metrics from CSV file: " + e);
e.printStackTrace();
}
}
И я создал модульный тест с двумя тестами для проверки случаев исключения, но я не уверен, что мне нужно сделать/издеваться, чтобы проверить счастливый путь. Есть идеи?
Что ж, поскольку это статический метод, его вывод обычно основан на входных аргументах.
Все, что вам нужно сделать, это предоставить правильные аргументы и проверить, возвращает ли функция ожидаемое значение в соответствии с входными значениями (я полагаю, вы сделали то же самое с исключениями).
Возможно, вам потребуется создать объект InputStream
для имитации CSV-файла и предоставления тестовых данных.
Это можно сделать следующим образом:
InputStream stream = new ByteArrayInputStream("value1,value2,value3".getBytes());
Запускаем метод, проверяем правильность получения List<Metrics>
и все.
Ах, спасибо. Я всегда спотыкаюсь о том, над чем смеяться, а над чем нет. Вы отвечаете вместе с этим: stackoverflow.com/questions/16039468/… помог мне создать работающий тест счастливого пути. Спасибо!