-2
有关于测试控制台输出的问题。测试台输出
stdOutput类:
public abstract class StdOutTest {
private final PrintStream stdOutMock = mock(PrintStream.class);
private final PrintStream stdOutOrig = System.out;
@Before
public void setUp() {
System.setOut(this.stdOutMock);
}
@After
public void tearDown() {
System.setOut(this.stdOutOrig);
}
protected final PrintStream getStdOutMock() {
return this.stdOutMock;
}
}
现在,这里是我不明白:
public class test extends StdOutTest{
@Before
public void setUp(){
//empty
}
@Test
public void example(){
System.out.println("hello");
verify(getStdOutMock()).println("hello");
}
}
我用了的Mockito验证和本次测试通过,当我删除设置()但是setUp()失败。失败消息说:
hello
Wanted but not invoked:
printStream.println("hello");
-> at observer_test.test.example(test.java:18)
Actually, there were zero interactions with this mock.
任何人都可以帮助我,也许为什么会发生这种情况?
你没有调用'System.setOut'来附加模拟。 –
啊哈!谢谢 :) –