我的方法使用通过Scanner
初始化的私有new Scanner(System.in);
我从上下文中调用此方法,我尝试向该Scanner
实例提供输入,就好像我是命令行中的程序用户一样。例如,如果我有以下功能:
public void getColor(){
...
System.out.print("Enter a color: ");
scanner.next();
...
}
我想在调用scanner
之后为Scanner
提供一种颜色,这是getColor()
的一个实例。这在Java中是否可行?
编辑:请注意,我试图在测试环境中执行此操作。这可能是一个非常重要的细节!
答案 0 :(得分:0)
使用ByteArrayInputStream。通过在您感兴趣的String上调用String.getBytes()来获取构造它的字节。简单!
答案 1 :(得分:0)
我使用的是JUnit,发现我可以使用System Rules' TextFromStandardInputStream实用程序来提供Scanner
的确切数量和输入类型。
但是,对于无法访问JUnit的个人来说,似乎System.setIn()也可以完成工作。