Java文件:如何自动测试从用户处获取输入的控制台应用程序
我正在用Java编写一个控制台应用程序,通过 “扫描器”课。我不想每次测试程序时都在控制台中手动输入,所以我想把所有输入放在一个文本文件中,让Java程序读取这个文本文件,而不是再次输入
我发现这样做的方式是改变路线:
Scanner sc = new Scanner(System.in);
致:
Scanner sc = new Scanner(new File(path_to_text_file));
你能推荐另一种不需要修改代码的方法吗
# 1 楼答案
如果绝对无法更改代码,请使用^{} 将默认输入流替换为您选择的输入流之一
在完成测试后,一定要将流更改回原来的流——这样做是在改变全局状态,以便在剩下的测试中保持不好的状态
或者,更改代码的设计,以便inject the input stream that you depend on。这避免了全局状态的突变,这是一件好事