假设我有以下类:
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“作为参数调用的。我该怎么做呢?
发布于 2019-02-06 21:23:37
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子句中。
https://stackoverflow.com/questions/54554419
复制相似问题