理想情况下,提取尴尬的依赖关系,以便您可以在没有依赖关系的情况下进行测试。更改
main为简单:
public static void main(String[] args) { doWork(new Scanner(System.in), System.out);}// TODO: Rename to something meaningfulpublic static void doWork(Scanner input, PrintStream output) { // Remainder of pre}(考虑使用a
Writer代替
PrintStreamfor
output。)
然后,您实际上不需要进行单元测试
main-但您可以
doWork使用
Scanner基于的进行测试
StringReader,并基于的输出进行测试
StringWriter,从而提供所需的任何输入并检查输出。



