Java,Junit-捕获用于单元测试的标准输入/输出

我正在使用JUnit编写集成测试,以自动化基于控制台的应用程序的测试。该应用程序是家庭作业,但这不是家庭作业。我想使这些测试自动化以提高生产率-

我不想回头再重新测试应用程序中已经测试过的部分。(使用单元测试的标准原因)

无论如何,我找不到或找不到有关捕获输出的文章,因此我不能这样做assertEquals,也不能提供自动输入。我不在乎输出/输入是否进入控制台/输出窗格。我只需要执行测试并验证输出是否与输入相同即可。

任何人都有文章或代码可以帮助您解决此问题。

回答:

使用System.setOut()(和System.setErr())将输出重定向到任意打印流-

您可以通过编程方式读取该打印流。

例如:

final ByteArrayOutputStream myOut = new ByteArrayOutputStream();

System.setOut(new PrintStream(myOut));

// test stuff here...

final String standardOutput = myOut.toString();

以上是 Java,Junit-捕获用于单元测试的标准输入/输出 的全部内容, 来源链接: utcz.com/qa/402054.html

回到顶部