我正在用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();
并且直到我输入内容后才能完成。