Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在安装扫描仪之前停止该功能_Java_Junit - Fatal编程技术网

Java 在安装扫描仪之前停止该功能

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

我似乎无法测试这个函数。如果该值与正则表达式不匹配,它将转到else语句。但是else语句有一个扫描程序,因此JUnit类将要求输入一个有效值,直到它与正则表达式匹配为止。有没有办法在函数转到其他函数之前停止它

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的可能副本我不想模拟用户输入,我只想测试通过正则表达式,如果它没有通过正则表达式测试,那么它是成功的,否则它是失败的。你需要显著地改变你实际程序的逻辑,以实现你所说的你想要的,也就是说,将正则表达式检查与你得到一个有效名称的坚持完全分离,然后你只对前者进行单元测试。我仍然认为,我所联系的问题中概述的步骤是一个适当的解决办法。