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");