2015-12-22 15 views
7

IntelliJ IDEA 15.0.2テストカバレッジ測定中に、簡単なゲッターとセッター(簡単なメソッド)を無視する方法はありますか?IntelliJ IDEA:コードカバレッジの簡単なメソッドを無視する

// should be measure 
public void complex() { 
    fancy(); 
    interesting(); 
    dropDatabase(); 
} 

// should not be measured 
public int getNumber() { 
    return this.number; 
} 

すべての行を測定すると75%になります。上記の方法だけを測定すると100%になります。これらはテストに役立つコードの100%です。

私はインターネット上でそれについて何も見つかりませんでしたか?私は悪い練習をしていますか?


UPDATE

また、このコードは、テストの対象です。

// should also be tested as it contains logic 
public Integer getValidationProgress() { 
    if (validationProgress == null) { 
     validationProgress = 0; 
    } 
    return validationProgress; 
} 
+1

コードカバレッジはコードカバレッジです。どちらかを実行するか、実行しない。あなたがコードの100%をカバーしていないと、100%カバレッジがあると言う有用性は分かりません。 – JJF

+2

簡単なゲッターとセッターは自動生成されます。そのためのテストを書くことは時間の無駄です。また、http://stackoverflow.com/a/6197432/1309035 – michaelbahr

+0

を参照してください私はそこにトップの答えにトップのコメントに同意します。私はそれが時間の無駄であるようなREテストに同意する。 100%は100%を意味します。重要なコードの100%は別のものであり、より重要なIMOです。 – JJF

答えて

6

ジェットブレーンズは、これは現在ない可能であることを私に言いました。

アンドレイDernov(IntelliJの)1月6日、22時54

こんにちはマイケル、

特定のメソッドを無視する設定はありません。

私はissueを作成しました。

0

さらに簡単例:ここでは

public abstract class A { 
    public static int add(int x, int y) { 
     return x + y; 
    } 
} 

のIntelliJの報道は、私が取得するために私のテストに

new A() {}; 

のような愚かな何かを書く必要があるだろうA.の-テストしていないコンストラクタについて不平を言いますそれはテストされました。あまり賢く見えない

final Class<?> clazz = Class.forName("package.name.of.A"); 
final Constructor<?> constructor = clazz.getDeclaredConstructors()[0]; 

constructor.setAccessible(true); 
constructor.newInstance(); 

:私は、ヘルパークラス

public final class A { 
    private A() {} 

    public static int add(int x, int y) { 
     return x + y; 
    } 
} 

ために、このアプローチを使用している場合、私は反射に「テスト」空のコードを使用する必要があります。