1

可能重复:
System.out.println() 的 JUnit 测试

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

4

2 回答 2

3

是的,您可以,您可以将默认 System.out 更改为文件、缓冲区等,并对预期数据的新流进行单元测试。但海事组织这是一个可怕的可怕想法。

其他方法将使用 Logger 代替标准输出并对日志进行单元测试,但再次对记录器进行单元测试听起来很奇怪。至少如果您不开发日志工具:)

对我来说,这听起来像是对什么是单元测试的不好理解,但我可能是错的。

于 2012-05-12T06:25:44.083 回答
0

一个更好的主意是通过不直接使用 System.out 将您的应用程序更改为更具可测试性。

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

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

于 2012-05-12T06:45:41.723 回答