はじめに:次の簡略化された単体テストを検討してください。
@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単体テストのコンテキストで、テスト対象の関数がここのようなメソッドを呼び出すことを確認するための最良または最も慣用的な方法は何ですか?