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