Как пропустить ввод сканера с помощью JUnit4 - PullRequest
0 голосов
/ 26 октября 2019

Я тестирую некоторые методы с помощью JUnit4, и когда я запускаю тестовый класс, моя программа останавливается на линии, где сканер требует ввода данных пользователем. Моя цель состоит в том, чтобы он не останавливался и проводил все тесты без ввода чего-либо в консоль.

Я пытался возиться с потоками ввода и вывода, но они происходят либо до, либо после того, как я запустилтест, а не во время.

Вот код, который я пытаюсь проверить:

String userName = theUsername;
String password = thePassword; 
Scanner myInput = new Scanner();
/**
 *the while loop tests to see if the given password is the password
 *that is assosiated with that username
 */
while (!myUserList.get(userName).getMyPassword().contentEquals(password)) {
    System.out.println("Wrong Credentials");
    System.out.print("User Name:");
    userName = myInput.next();
    System.out.print("Password:");
    password = myInput.next();
}
System.out.println("Login Successfull");
return true;

А вот тест, который я пытаюсь запустить:

public void testLoginIncorectPass() {
    assertNotNull("testLogin return", reg.login(oldUser.getMyName(), "2"));
}

Когда я его запускаю, тест проводится правильно, но он застревает на

username = myInput.next();

и не завершится, пока я не введу что-либо.

...