JUNIT тестирует пустые методы
У меня есть класс Java, полный методов void, и я хочу провести некоторый модульный тест, чтобы получить максимальное покрытие кода.
Например у меня есть этот метод:
protected static void checkifValidElements(int arg1, int arg2) {
method1(arg1);
method2(arg1);
method3(arg1, arg2);
method4(arg1, arg2);
method5(arg1);
method6(arg2);
method7();
}
Это плохо названо по причине, потому что я перевел код для лучшего понимания. Каждый метод проверяет, являются ли аргументы верными и хорошо ли они написаны.
Пример :
private static void method1(arg1) {
if (arg1.indexOf("$") == -1) {
//Add an error message
ErrorFile.errorMessages.add("There is a dollar sign in the specified parameter");
}
}
Мой модульный тест хорошо покрывает небольшие методы, потому что я прошу их проверить, содержит ли ErrorFile сообщение об ошибке, но я не вижу, как я могу проверить свой метод checkIfValidElements, он ничего не возвращает или ничего не меняет. Когда я запускаю покрытие кода в Maven, оно говорит мне, что до этого модульный тест покрывает эту часть моего класса.
Единственный способ, который я вижу, это изменить этот метод, чтобы он возвращал значение типа int или bollean, например так:
protected static int checkifValidElements(int arg1, int arg2) {
method1(arg1);
method2(arg1);
method3(arg1, arg2);
method4(arg1, arg2);
method5(arg1);
method6(arg2);
method7();
return 0;
}
С помощью этого метода я могу сделать утверждение равным, но мне кажется, что это бесполезно. Проблема в том, что у меня есть пара классов, которые спроектированы таким образом, и это снижает мой охват модульным тестированием на%.