Ниже приведена модифицированная версия моего кода (посещаю занятия и не хочу рисковать моим строгим, активным профессором, думая, что я плагиат)
По сути, я создал класс со сканером, и я толькохочу, чтобы он принимал положительные двойники.Для этого я использовал триггер try и InputMismatchException.
Тем не менее, в центре внимания задания находится модульное тестирование.В приведенном ниже модульном тесте генерируется исключение нулевого указателя (имеет смысл, поскольку нулевое значение является параметром), но я не уверен, как его изменить, чтобы вместо этого проверить исключение входного несоответствия.
@Test (expected = InputMismatchException.class)
public void input_test() {
myClass instance = new myClass();
myclass.someNum(null, 0);
}
My IDEнастаивает на том, чтобы я использовал нулевое значение для первого параметра (полагаю, поскольку я использовал сканер?), но я хочу, чтобы он был не двойным.Ниже приведен фрагмент моего основного класса, который я рисую для этого теста.
public static double someNum(Scanner sc, double measure) {
measure = sc.nextDouble();
try{
if (measure <=0) {
System.out.println("Entry needs to be greater than 0");
}
} catch(InputMismatchException e){
System.err.printf("Input Exception: Please enter a positive numerical digit and try again %n ");
sc.next();
}
return measure;
}
}
Извините, если это длинный или отсутствует информация, это мой первый вопрос
Редактировать: СпасибоВам за разъяснения и советы.Я добавил весь метод для someNum.В конечном счете, я думаю, что я хотел бы заменить нулевой параметр в тесте недопустимым вводом, таким как строка и т. Д. Я читал комментарии, и кажется, что лучше всего было бы создать пробный сканер?
Спасибо за всю вашу помощь до сих пор.Все еще учусь!