Java 在JUnit测试中,是否可以检查System.out.println()方法
可能重复:Java 在JUnit测试中,是否可以检查System.out.println()方法,java,unit-testing,io,Java,Unit Testing,Io,可能重复: 是否可以通过JUnit测试检查方法System.out.println(“一,二”)是否实际打印了一,二?是的,您可以将默认System.out更改为文件、缓冲区等,并对新流进行单元测试,以获得预期的数据。但在我看来,这是一个可怕的想法 另一种方法是使用一个记录器来代替标准输出和对日志进行单元测试,但再一次,对记录器进行单元测试听起来很奇怪。至少如果您没有开发测井工具:) 对我来说,这听起来像是对什么是单元测试的错误理解,但我可能错了。更好的办法是不直接使用System.out将应
是否可以通过JUnit测试检查方法System.out.println(“一,二”)是否实际打印了一,二?是的,您可以将默认System.out更改为文件、缓冲区等,并对新流进行单元测试,以获得预期的数据。但在我看来,这是一个可怕的想法 另一种方法是使用一个记录器来代替标准输出和对日志进行单元测试,但再一次,对记录器进行单元测试听起来很奇怪。至少如果您没有开发测井工具:)
对我来说,这听起来像是对什么是单元测试的错误理解,但我可能错了。更好的办法是不直接使用System.out将应用程序更改为更易于测试
- 如果您尝试测试的方法是为最终用户编写输出而设计的,请修改它或封闭类,以便目标OutputStream或PrintWriter或任何参数
- 另一方面,如果该方法正在生成日志输出,请使用适当的日志框架。。。并考虑是否有必要对日志输出进行单元测试。