【发布时间】:2014-04-03 04:03:36
【问题描述】:
我正在为我的井字游戏程序的以下方法编写单元测试。我想采用 TDD 方法,但该方法需要用户输入。
public int[] playerMove(){
Scanner reader = new Scanner(System.in);
int[] move = new int[2];
move[0] = reader.nextInt()-1;
move[1] = reader.nextInt()-1;
return move;
}
我的问题是我无法输入move[0] 和move[1] 的测试编号,因为它需要通过System.in 提供的用户输入。在我的测试过程中如何模拟这个?
【问题讨论】:
-
检查这个线程。可能会有所帮助 - stackoverflow.com/questions/4230402/…
-
TDD 要求您先编写一个测试。这样您就可以在编写代码之前发现难以测试的代码存在这样的问题,因此您将采用更可测试的不同设计。经验表明,可测试的设计也更易于维护和更灵活。