【问题标题】:Attempt to TDD and unit test text user input from console for Java尝试从 Java 控制台进行 TDD 和单元测试文本用户输入
【发布时间】: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 提供的用户输入。在我的测试过程中如何模拟这个?

【问题讨论】:

标签: java tdd


【解决方案1】:

首先,如果您已经编写了代码,而现在您正在编写测试,那么这不是 TDD。

关于您的问题,解决此问题的一种方法是将 InputStream 作为参数传递给您正在测试的类的构造函数,而不是硬编码 System.in

这将使您能够使用模拟 InputStream 创建测试类的实例,该模拟会生成您想要的任何输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 2015-08-12
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多