如何使用JUnit4跳过扫描仪输入

时间:2019-10-26 20:18:19

标签: java java.util.scanner junit4

我正在用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();

并且直到我输入内容后才能完成。

0 个答案:

没有答案