Junit PowerMock:如何监视System.out.println?

Junit PowerMock:如何监视System.out.println?,junit,mockito,powermock,Junit,Mockito,Powermock,假设我有以下课程: class MyClass { public MyClass(){ } public void hello() { System.out.println("hello"); } } 我想测试“hello”方法: @Test public void testHello() { MyClass mc = new MyClass(); mc.hello(); } 现在,我想监视System.out.println并

假设我有以下课程:

class MyClass { 
    public MyClass(){
    }
    public void hello() {
       System.out.println("hello");
    }
}
我想测试“hello”方法:

@Test
public void testHello() {
    MyClass mc = new MyClass();
    mc.hello();
}

现在,我想监视System.out.println并确保该方法是以“hello”作为参数调用的。如何操作?

System.out
实际上是
PrintStream
的一个实例,因此我的方法是创建此类的模拟,并使用以下方法将输出直接输出到该类:


请记住在测试后还原上一个
PrintStream
实例,最好是在
finally
子句中。

您能写代码吗?可能是
PrintStream outMock = Mockito.mock(PrintStream.class);
System.setOut(outMock);
System.out.println("Hello");
Mockito.verify(outMock).println("Hello");