У меня есть метод, который проверяет наличие свободного места. Если он пересекает пороговое значение, он регистрирует, генерирует дампы потока и затем завершает работу.
Я не уверен, как написать тестовый пример для этого.
Ниже приведен метод, который выполняет задачу, как описано выше:
void watchDog() {
FileStore fileStore = null;
long total = 0;
long free = 0;
double percent_free = 0;
try {
fileStore = Files.getFileStore(Paths.get(dirToWatch));
total = fileStore.getTotalSpace();
free = fileStore.getUsableSpace();
percent_free = 100.0 * ((double) (total - free) / (double) total);
} catch (IOException e) {
e.printStackTrace();
}
if (percent_free >= thresholdValue) {
StringBuilder str = new StringBuilder();
ThreadMXBean threadMxBean = ManagementFactory.getThreadMXBean();
for (ThreadInfo ti : threadMxBean.dumpAllThreads(true, true)) {
str.append(ti);
}
LOGGER.error(str.toString());
System.exit(0); // Exit after dumping and logging Thread dumps
}
}
Яне в состоянии думать, как провести модульное тестирование этого куска кода? Какая стратегия нужна для модульного тестирования этого метода? Нужно ли мне выполнять этот код на самом деле в модульном тесте или Mocking поможет?
Важным моментом является то, что этот метод выполняет System.exit (), поэтому будет ли он завершать сам Junit?
Любые рекомендации будут очень полезны.