在JUnit测试中,可以检查方法System.out.println()

时间:2012-05-12 06:17:47

标签: java unit-testing io

  

可能重复:
  JUnit test for System.out.println()

是否可以通过JUnit测试检查System.out.println(“One,Two”)方法是否实际打印出One,Two?

2 个答案:

答案 0 :(得分:3)

是的,你可以,你可以将默认的System.out更改为文件,缓冲区等,并单元测试新流的预期数据。但IMO认为这是一个糟糕的主意。

其他方法是使用Logger而不是标准输出和单元测试日志,但再一次听起来很奇怪单元测试记录器。至少如果你没有开发一个日志工具:)

对我而言,这听起来像对单位testig的理解不好,但我可能是错的。

答案 1 :(得分:0)

更好的想法是通过不直接使用System.out来更改应用程序以使其更易于测试。

  • 如果您尝试测试的方法是为最终用户编写输出,请修改它或封闭类,以便目标OutputStream或PrintWriter或其他任何参数。

  • 另一方面,如果该方法正在生成日志输出,请使用正确的日志记录框架......并考虑是否值得对日志输出进行单元测试。