简介:考虑以下简化的单元测试:
@Test
public void testClosingStreamFunc() throws Exception {
boolean closeCalled = false;
InputStream stream = new InputStream() {
@Override
public int read() throws IOException {
return -1;
}
@Override
public void close() throws IOException {
closeCalled = true;
super.close();
}
};
MyClassUnderTest.closingStreamFunc(stream);
assertTrue(closeCalled);
}
显然它不起作用,抱怨closed
不存在final
。
问题:close()
在 Java 单元测试的上下文中,验证被测函数确实调用了某些方法(如此处)的最佳或最惯用的方法是什么?