【发布时间】:2025-12-22 12:50:10
【问题描述】:
所以我查了this question并尝试了它,但没有成功。
我的代码应该通过使用Streams 读回文本来测试该方法是否正确地将文本输出到控制台。
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
PrintStream myStream = new PrintStream(outStream);
System.setOut(myStream);
o.doSomething(); //printing out Hi
System.out.flush();
System.setOut(savedOldStream);//setting it back to System.out
assertEquals(outStream.toString(),"Hi");
但是每次我运行 JUnit 都会失败。
我也试过:assertTrue(outStream.toString().equals("Hi"));,但这也没有用。
这是 doSomething() 方法:
public void doSomething () {
System.out.println("Hi");
}
【问题讨论】:
-
“没有用”是什么意思?实际发生了什么?您是否收到任何错误或只是一个失败的断言?
-
无需重新分配
System.out来进行测试。您可以将ByteArrayOutputStream传递给doSomething()方法。
标签: java junit outputstream