Java mvn测试期间提示用户按命令行上的任意键
我正在使用maven运行单元测试。在某一点上,我需要暂停执行,以便测试人员做一些事情。完成后,他们需要按一个键。我的单元测试中有以下代码Java mvn测试期间提示用户按命令行上的任意键,java,maven,Java,Maven,我正在使用maven运行单元测试。在某一点上,我需要暂停执行,以便测试人员做一些事情。完成后,他们需要按一个键。我的单元测试中有以下代码 try { while (true) { System.out.print("Enter something : "); inputResult = System.console().readLine(); } } catch (Exception exc) { // e
try {
while (true) {
System.out.print("Enter something : ");
inputResult = System.console().readLine();
}
} catch (Exception exc) {
// exception handling code to
// print out message and stack trace
}
运行此代码时,将捕获一个异常,该异常具有指向以下行的堆栈跟踪:
inputResult = System.console().readLine();
为什么会发生这种情况?我该如何解决呢?您将UnitTest与JUnit框架执行的测试混为一谈
根据定义,UnitTest是一些额外的代码,可以自动验证生产代码的行为,特别是在没有用户交互的情况下
您有三种选择(按所需努力的顺序):
您的测试有可能由于未分离被测试单元而未通过单元测试的特性 如果您因此应用了关注点分离原则,那么用户交互是在不同的单元(类/模块)中完成的,在unittests运行期间,您应该用一个模拟来替换该单元。这些mock最好是在Mockito、JMock等mock框架的支持下创建的