Fra*_*k V 27 java io junit integration-testing
我正在使用JUnit编写集成测试来自动测试基于控制台的应用程序.该应用程序是家庭作业,但这部分不是作业.我希望自动化这些测试以提高工作效率 - 我不想再返回并重新测试已经测试过的应用程序部分.(使用单元测试的标准原因)
无论如何,我无法弄清楚或找到关于捕获输出的文章,以便我可以对其进行assertEquals操作,也不提供自动输入.我不在乎输出/输入是否进入控制台/输出窗格.我只需要执行测试并验证输出是否是给定输入的预期.
任何人都有一篇文章或代码来帮助解决这个问题.
And*_*yle 46
使用System.setOut()(和System.setErr())将输出重定向到任意打印流 - 可以是您以编程方式读取的打印流.
例如:
final ByteArrayOutputStream myOut = new ByteArrayOutputStream();
System.setOut(new PrintStream(myOut));
// test stuff here...
final String standardOutput = myOut.toString();
Run Code Online (Sandbox Code Playgroud)
本System类有方法setIn(),setOut()并setErr()允许您设置的标准输入,输出和错误流,例如一个ByteArrayOutputStream,你可以随意检查.
| 归档时间: |
|
| 查看次数: |
27487 次 |
| 最近记录: |