在一个项目中,我有一个Utility类,如下所示:
public final class Util {
private Util() {}
public static String method1(InputStream in) {...}
public static String method2(BufferedReader in) {...}
public static String method3(File file) {...}
}
从仅static
包含方法的意义上讲,该类是Utility类。因此它被声明final
,其构造函数是private
。创建实例或派生子类根本没有任何意义。
我有一套用于测试项目的单元测试。我正在使用IntelliJ IDEA来运行测试,测量和可视化代码覆盖率。该实用程序的构造函数class Util
现在可以降低覆盖范围。我希望100%的逻辑覆盖率达到100%。像Utility类的私有构造函数这样的代码降低了覆盖范围。
是否有可能(最好通过注释)将方法或构造函数标记为与代码覆盖率无关,以便从覆盖率报告中排除此类代码,从而显示100%的覆盖率?
我知道,通常,从覆盖率报告中隐藏代码对您自己不利。我不介意该报告是否包含“被忽略的项目”列表-实际上,检查某人是否正在忽略不应忽略的内容会很好。重点实际上是关于覆盖范围毫无意义的代码,例如Utility类的私有构造函数。
我试图找到是否annotations.jar
包含候选人。唯一看起来像是可以远程观察的注解是TestOnly
,但不能满足此目的。我也四处张望,plugins/coverage/lib/*.jar
找不到候选人,但也许我错过了?
更新此问题现在已过时。同时,IntelliJ IDEA和Jacoco学会了如何忽略没有呼叫者的私有构造函数的覆盖范围。我不知道任何其他Java故意无法访问的代码示例都会引发对话,将其从覆盖率报告中排除。
我使用enum
实用程序类,大多数覆盖率工具都知道忽略它的方法。
public enum Util { ;
enum
是final
用private
默认的构造函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句