Cobertura,压制线永远不应该来

bil*_*lal 2 java code-coverage cobertura

我第一次使用cobertura.一切正常,但我想知道的是,我的代码中有一些行,永远不应该被称为:

try {
    em.persist();
}catch(Exception) {
    logger.error("can not create");
}
Run Code Online (Sandbox Code Playgroud)

我正在进行所有控制,直到持续行,当我的代码工作正常,错误行永远不会达到,现在就是这样.因此我从来没有%100线覆盖.

我应该以某种方式抑制它吗?

谢谢,比拉尔

Lau*_*eyn 5

虽然您可以从Cobertura覆盖率报告中排除整个类,但您不能排除特定的行或方法.

您应该接受在现实项目中无法实现100%覆盖率,因为始终存在无法访问的代码或代码,只能通过模拟复杂的条件组合来实现.

正如其他答案所示,您可以尝试通过模拟/存根EntityManager来增加单元测试覆盖率以引发异常persist.但这几乎是你可以去的.