Java 扫描仪的JUnit测试

Java 扫描仪的JUnit测试,java,junit,Java,Junit,我正在尝试为以下代码构建JUnit测试: import java.util.InputMismatchException; 导入java.util.Scanner; 公共类控制台{ 静态扫描仪sc1=新扫描仪(System.in); 静态扫描仪sc2=新扫描仪(System.in); 公共静态void main(字符串[]args){ readIntegerFromStdin(); } 公共静态void readIntegerFromStdin(){ 试一试{ System.out.printl

我正在尝试为以下代码构建JUnit测试:

import java.util.InputMismatchException;
导入java.util.Scanner;
公共类控制台{
静态扫描仪sc1=新扫描仪(System.in);
静态扫描仪sc2=新扫描仪(System.in);
公共静态void main(字符串[]args){
readIntegerFromStdin();
}
公共静态void readIntegerFromStdin(){
试一试{
System.out.println(“在此处输入编号:”);
int a=sc1.nextInt();
}捕获(输入不匹配异常e){
System.out.println(“在此处输入编号:”);
sc2.nextInt();
}
}
}

问题是,我不知道如何在测试中使用
扫描仪的输入。如何访问扫描仪的输入?

这是否回答了您的问题?为什么需要有两个扫描仪实例:sc1和sc2
readIntegerFromStdin
没有返回假定从系统读取的整数。在中,我们计划执行什么断言?另外,如果第二个“此处输入数字:”提示仍然没有得到整数作为输入,那么期望是什么?@Jayr我必须创建这两个scanner对象,因为控制台的输入存储在scanner中。如果我使用第一台扫描仪两次,它会自动存储value@AndreiKovrov不是真的,我现在开始编程这意味着我是个业余爱好者-这对我来说是全新的如果你在同一个包中编写JUNIT,假设你不需要使用Mockito或其他测试库运行测试,您可以这样编写:
public class ConsoleTest{@org.junit.Test public void main(){try{Console.sc1=new java.util.Scanner(new java.io.ByteArrayInputStream(“1.getBytes());Console.main(new String[0]);}catch(java.util.inputmascheption.e){org.junit.Assert.fail(“意外的inputmascheption”);}}}