Java 在安装扫描仪之前停止该功能
我似乎无法测试这个函数。如果该值与正则表达式不匹配,它将转到else语句。但是else语句有一个扫描程序,因此JUnit类将要求输入一个有效值,直到它与正则表达式匹配为止。有没有办法在函数转到其他函数之前停止它Java 在安装扫描仪之前停止该功能,java,junit,Java,Junit,我似乎无法测试这个函数。如果该值与正则表达式不匹配,它将转到else语句。但是else语句有一个扫描程序,因此JUnit类将要求输入一个有效值,直到它与正则表达式匹配为止。有没有办法在函数转到其他函数之前停止它 public String addName(String name){ String setName = ""; while(true) { if(name.matches("[a-zA-Z ]{1,30}")) { se
public String addName(String name){
String setName = "";
while(true) {
if(name.matches("[a-zA-Z ]{1,30}")) {
setName = name;
break;
} else {
System.out.println("Please enter a valid name");
name = scan.nextLine();
}
}
return setName;
}
@Test
public void test(){
String name = "1001";
String setname = person.addName(name);
assertEquals(name,setname);
}
@Catchwa的可能副本我不想模拟用户输入,我只想测试通过正则表达式,如果它没有通过正则表达式测试,那么它是成功的,否则它是失败的。你需要显著地改变你实际程序的逻辑,以实现你所说的你想要的,也就是说,将正则表达式检查与你得到一个有效名称的坚持完全分离,然后你只对前者进行单元测试。我仍然认为,我所联系的问题中概述的步骤是一个适当的解决办法。