2017-01-18 8 views
2

私のJavaプロジェクトでは@Getter@Setterアノテーションを使用してオブジェクトのプライベートメンバー変数にアノテーションを付けています。lombokを使用しています。私たちは、そのゲッターとセッターが期待どおりに動作することを知っています。だから私たちは本当にそれらを単体テストにする必要はありません。しかし、それはユニットテストでコードのcode coverageをもたらします。Javaのlombokユニットgetterセッターのテスト

ユニットテストエンジンに、lombokで生成されたゲッタとセッタがテストする必要がないことを伝える方法はありますか?

+0

1.あなたはカバレッジを上げるためにunittestを書くべきではありません。 Unittestはリファクタリングの安全を提供し、バグの捜索を支援します。単体テストのgetter/setterはいずれもサポートしていません。 –

+0

2.ゲッター/セッターを持つクラスはDTOでなければなりません。 DTOにはビジネスロジックがなくてはならないため、個別のユニットテストは必要ありません。 –

答えて

3

Coberturaの2.0ので、それが唯一のゲッターとセッターについてです場合は、ignoreTrivalスイッチを設定できます。

Coberturaの変更履歴 - カバレッジレポートでは、以下の無視するCoberturaの 告げる新--ignoreTrivialスイッチを: がクラスフィールドを単に読み込むGetterメソッド。クラスフィールドを設定するセッターメソッド。 - 新--ignoreMethodAnnotation

Coberturaの変更ログ:唯一のクラスのフィールドを設定し、より具体的な方法を無視したい場合は、あなたもignoreMethodAnnotationスイッチを使用することができ

スーパークラス コンストラクタを呼び出す コンストラクタスイッチに使用された メソッド上に存在する場合に、メソッドに存在するアノテーションを指定すると、Coberturaはカバレッジレポートのメソッドを無視します。

あるいは、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> 
3

ロンボク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> 

が開示:私はロンボク島の開発者です。

NB。現時点では、ロンボク1.16.14はリリースされていません。このフィックスを含むedge releaseをダウンロードできます。

関連する問題