我查看了这个问题,并尝试了一下,但是没有成功。
我的代码应该通过使用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()
方法。 - M A