如何在Junit控制台中接受来自用户的输入

时间:2012-11-03 19:16:10

标签: java junit junit4 junit3

我正在尝试为下面给出的函数编写Junit测试用例:

class A{
  int i;
  void set()
  {
    Scanner in=new Scanner(System.in);
    i=in.nextInt();
  }
}

现在我的问题是当我为它创建一个Junit测试用例时,它除了来自用户的输入外没有:

 public void testSet() throws FileNotFoundException {
    System.out.println("set");
    A instance = new A();
    int i=1;
    instance.set(i);
    // TODO review the generated test code and remove the default call to fail.
    //fail("The test case is a prototype.");
}

请注意我应该怎样接受用户的输入。

1 个答案:

答案 0 :(得分:7)

您可以使用System.setIn()模拟用户输入:

String inputData = "user input data";
System.setIn(new java.io.ByteArrayInputStream(inputData.getBytes()));

现在,如果您调用set()方法,它将从字符串而不是标准输入中读取数据。