在检查我的代码覆盖率时,我发现许多单元测试未能检查finally块中尝试在其中关闭打开的InputStream的情况。
一个示例摘录如下:
try {
f = new BufferedInputStream(new FileInputStream(source));
f.read(buffer);
} finally {
if (f != null)
try {
f.close();
} catch (IOException ignored) {
}
}
}
有没有合适的解决方案来使用JUnit4检查finally块内的所有内容?
我知道在考虑最大生产率的情况下无法实现100%的代码覆盖率。然而,这些红线在报告中具有一定的吸引力。