У меня есть класс java, полный методов void, и я хочу сделать некоторый модульный тест, чтобы получить максимальный охват кода.JUNIT test void methods
Например, у меня есть этот метод:
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");
}
}
Мой блок испытание охватывает небольшие методы хорошо, потому что я прошу их, чтобы проверить, если файл ошибки содержит сообщение об ошибке, но я не вижу, как я могу проверить мой метод 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;
}
С помощью этого метода я в состоянии сделать утверждают на равных, но мне кажется, что это бесполезно. Проблема в том, что у меня есть пара классов, которые разработаны таким образом и уменьшают мой охват тестирования единицы%.
Я не понимаю, как тип возвращаемого значения метода влияет на охват. Утверждения также не имеют отношения к охвату. Единственный факт - вы используете метод во время модульного теста или нет. – kan