2016-10-21 18 views

答えて

4

これらの数字は、その行があなたのテスト中に実行された回数に対応しています。いくつかのテストでは

public class MyClass { 
    public void methodA(){ 
     System.out.println("Method a"); 
    } 

    public void methodB(){ 
     System.out.println("Method b"); 
    } 
} 

public class MyClassTest { 

    @Test 
    public void testMethodA(){ 
     final MyClass x = new MyClass(); 
     x.methodA(); 
    } 

    @Test 
    public void testMethodB(){ 
     final MyClass x = new MyClass(); 
     x.methodB(); 
    } 
} 

は私が二回私のテストオブジェクトを構築し、一度それぞれの方法を実行したことを示す、次のレポートを取得します。簡単な例を使用して Non ignored test case

testMethodB@Ignore注釈を追加すると、代わりに次のレポートが生成されます。これは、自分のクラスを一度構築しただけで、methodBテスト時: enter image description here

色はカバレッジに関連付けられています。その行または分岐をカバーするテストがない場合は、赤で表示されます。

編集 - コメントのご質問に関しては、すべての条件をチェックしていないために不足している可能性があります。たとえば、この方法を検討します。

public void methodB(final boolean testOne, final boolean testTwo){ 
    if(testOne || testTwo){ 
     System.out.println("Method b"); 
    } 
    System.out.println("Done"); 
} 

と、このテスト:

@Test 
    public void testMethodB(){ 
     final MyClass x = new MyClass(); 
     x.methodB(true, false); 
     x.methodB(true, true); 
    } 

次のテストレポートで終わるだろう。この理由は、テストでこの行を実行したにも関わらず(実際には2回)、条件付きのすべての順列をテストしなかったため、レポートでは範囲が不足していることが示されるためです。

conditional coverage

+0

私は多くの時間を求めているいくつかのラインを見ることができますが、それはまだ赤色を示し、なぜ?これらはすべて条件文であるように見えますが、これはすべての条件をカバーしていないことを意味しますか?ありがとう。 –

+0

私の答えを更新しました。スクリーンショットのために説明するのは難しいですが、私の推測では、条件のすべての順列をテストしていないので、レポートには不足しているカバレッジが表示されています。 –

+0

すごく、ありがとう! –

関連する問題