我开始使用Java和JUnit,我在理解有关代码覆盖率的提示和技巧方面遇到了一些问题。
如果我是对的,单元测试课程的最终目标是达到100%的测试覆盖率。
所以这是我现在的代码:
// field is of type Field (from reflection)
field.setAccessible(true);
try {
field.get(instance);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
所以在这里,您可以看到我无法随时访问catch()块,因为我将字段设置为Accessible ...
我的代码出了什么问题?如果发生这种情况,如何获得100%的代码覆盖率?
答案 0 :(得分:2)
目标不是运行100%的代码行。目的是测试100%的系统要求,或者更确切地说是100%的系统要求所涵盖的方案。
如果您的代码在满足系统要求方面没有任何作用,那么您应该考虑删除它。在您给出的示例中,语言的工作需要代码,然后您可以将其保留;但不要担心您报告的代码覆盖率低于100%这一事实。
请记住,代码覆盖百分比只是有用数字的近似值,这是完全不可测量的情景覆盖率"。