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

时间:2019-02-06 13:09:01

标签: junit mockito powermock

假设我有以下课程:

.UpdateAsync(c => new Critique() { UserID = deletedUserID });

并且我想测试'hello'方法:

.Include(c => c.User)

现在,我想监视System.out.println并确保以“ hello”作为参数调用此方法。我该怎么办?

1 个答案:

答案 0 :(得分:2)

System.out实际上是PrintStream的实例,所以我的方法是创建此类的模拟并使用System.setOut方法将输出定向到该类:

PrintStream outMock = Mockito.mock(PrintStream.class);
System.setOut(outMock);
System.out.println("Hello");
Mockito.verify(outMock).println("Hello");

记住在测试后最好在PrintStream子句中恢复以前的finally实例。