是否可以通过JUnit测试检查System.out.println(“One,Two”)方法是否实际打印出One,Two?
答案 0 :(得分:3)
是的,你可以,你可以将默认的System.out更改为文件,缓冲区等,并单元测试新流的预期数据。但IMO认为这是一个糟糕的主意。
其他方法是使用Logger而不是标准输出和单元测试日志,但再一次听起来很奇怪单元测试记录器。至少如果你没有开发一个日志工具:)
对我而言,这听起来像对单位testig的理解不好,但我可能是错的。
答案 1 :(得分:0)
更好的想法是通过不直接使用System.out来更改应用程序以使其更易于测试。
如果您尝试测试的方法是为最终用户编写输出,请修改它或封闭类,以便目标OutputStream或PrintWriter或其他任何参数。
另一方面,如果该方法正在生成日志输出,请使用正确的日志记录框架......并考虑是否值得对日志输出进行单元测试。