您的单元测试是否构成 100% 的代码覆盖率?是或否,以及为什么或为什么不。
请您参考如下方法:
没有,有几个原因:
- 与 90% 或 95% 的覆盖率相比,实现 100% 的覆盖率确实要付出不明显的代价。
- 即使覆盖率达到 100%,您的代码也不完美。看看这个方法(事实上,这取决于您所讨论的覆盖类型 - 分支覆盖、行覆盖...):
public static String foo(boolean someCondition) {
String bar = null;
if (someCondition) {
bar = "blabla";
}
return bar.trim();
}
和单元测试:
assertEquals("blabla", foo(true));
测试将会成功,并且您的代码覆盖率为 100%。但是,如果您添加另一个测试:
assertEquals("blabla", foo(false));
然后你会得到一个NullPointerException
。由于第一个测试你的成绩是 100%,你不一定会写第二个测试!
一般来说,我认为关键代码的覆盖率必须接近100%,而其他代码的覆盖率可以达到85-90%