-1

以下のサンプル コードでは、eclemma の強調表示

  • public class Test {そしてSystem.out.println("false");赤く
  • if (a<15)黄色のように

コード カバレッジ率は 62% です。エクレマレポート:

Missed Instructions Cov. 62% ,
Missed Branches Cov. 50% ,
Missed 2 , 
Cxty 3 ,
Missed 2 ,
Lines 7 ,
Missed 1,
Methods 2 ,
Missed 0 ,
Classes 1

コードカバレッジが62%しかない理由を誰か説明してください。

package sanityReady;
public class Test {
    public static void main(String[] args) {
        int a=10;
        if (a<15)
        {
            System.out.println("true");
        }
        else
        {
            System.out.println("false");
        }
    }
}
4

1 に答える 1

0

EclEmma は通常、テストを実行してコード カバレッジを計算しようとします。テストは、通常の Java クラスで記述されたすべての条件をカバーする必要があります。

通常、IF-ELSE を一緒に記述すると、EclEmma は両方の条件をテストするために 2 つのテストが記述されることを期待します。テストが IF または ELSE のいずれかのみをテストする場合、部分的にテストされていることを示すために IF-ELSE が黄色にマークされます!

上記の例では、 a=10 があり、これは常に 15 未満であるため、テストはテストIFの一部にすぎません。elseしたがって、まったくテストされていないため、赤い線が表示されます。

IFテストで と の両方をカバーするように、コードをリファクタリングする必要がありますELSE。その場合、コード カバレッジのみが 100% になります。

EclEmma がどのように機能するかをテストしているだけのようです。それ以外の場合は、適切な Junit テストを記述して、コードのコード カバレッジをテストする必要があります。

Junits の学習については、この URL を確認できます: http://www.tutorialspoint.com/junit/

于 2016-09-13T09:05:35.930 に答える