0

我正在编写一个必须等​​待用户输入才能运行的 JUnit 测试;场景是这样的:

  • 开始运行测试
  • 等待一些无法自动化/模拟的外部操作完成;用户必须执行一些手动活动,然后通知测试继续
  • 继续运行

我试着用

System.out.println( "Press enter to continue" );
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
reader.readLine();
System.out.println( "Resuming..." );

但它不起作用,因为 System.in 在测试中似乎不接受来自键盘的输入。

我知道这不是一个典型的/正统的单元测试,但我想将它编码为一个,因为这样可以方便地使用 Maven 来测试各种案例。

我可以这样做吗,或者我应该将我的测试转移到一个正常的(即非Junit)程序?

谢谢

4

1 回答 1

1

如果它需要用户输入,它就不是真正的单元测试——不要这样对待它。

把它做成一个简单的程序,很容易运行,然后在需要的时候进行测试。将其包含在您的构建中是没有意义的,因此它应该按不同的时间表运行 - 不是每次构建,而是更符合您的开发过程 - 每天,每个新功能等。

于 2012-05-10T09:52:07.560 回答