繁体   English   中英

Java lombok单元测试getter setters

[英]Java lombok unit tests for getters setters

我使用的lombok在我的Java项目注释与我对象的私有成员变量@Getter@Setter注解。 我们知道那些吸气剂和固定剂会按预期工作。 所以我们并不需要对它们进行单元测试。 但是,这降低了单元测试中代码的code coverage

有没有办法告诉单元测试引擎不需要测试lombok生成的getter和setter?

从Lombok 1.16.14开始,所有生成的方法都将使用@lombok.Generated进行注释。

您可以从Cobertura测试报告中排除它们:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>cobertura-maven-plugin</artifactId>
  <version>2.7</version>
  <configuration>
    <instrumentation>
      <ignoreMethodAnnotation>lombok.Generated</ignoreMethodAnnotation>
    </instrumentation>
  </configuration>
</plugin>

披露:我是Lombok开发人员。

NB。 目前,Lombok 1.16.14尚未发布。 您可以下载包含此修复程序的边缘版本

从Cobertura 2.0开始,如果它只是关于getter和setter,你可以设置ignoreTrival开关:

Cobertura Changelog - 新的--ignoreTrivial开关告诉Cobertura忽略覆盖率报告中的以下内容:Getter方法只读取一个类字段; 设置类字段的Setter方法; 仅设置类字段并调用超类构造函数的构造函数

如果您希望更具体地忽略方法,还可以使用ignoreMethodAnnotation开关:

Cobertura Changelog - 新的--ignoreMethodAnnotation开关用于指定注释,当注释出现在方法上时,将导致Cobertura忽略coverage报告中的方法

或者,从maven插件:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>cobertura-maven-plugin</artifactId> 
    <version>2.6</version> 
    <configuration> 
        <formats> 
            <format>xml</format> 
            <format>html</format> 
        </formats> 
        <instrumentation> 
            <ignoreTrivial>true</ignoreTrivial> 
            <excludes> 
                <exclude>**/some/trivial/classes/**</exclude> 
            </excludes> 
        </instrumentation> 
    </configuration> 
    <executions> 
        <execution> 
            <goals> 
                <goal>clean</goal> 
                <goal>check</goal> 
            </goals> 
        </execution> 
    </executions> 
</plugin> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM