3

当社では、90% のコード カバレッジ要件があります。

Cobertura レポートを実行すると、88.8% のカバレッジしか得られず、次の switch ステートメントが強調表示されています。

public TopBrandPrefix getPrefix() {
     switch(brandParamType) {
         case TOP12SUCHAS_AND:
             return TopBrandPrefix.SUCHAS;
         case TOP12COMME_ET:
             return TopBrandPrefix.COMME;
         case TOP12WIE_UND:
             return TopBrandPrefix.WIE;
         default:
             return TopBrandPrefix.NULL;
     }
 }

80% のカバレッジを報告しています。brandParamType は次の列挙型です。

public enum BrandParamType {

    TOP123,
    TOP456,
    TOP123LINKED,
    TOP456LINKED,
    TOP12,
    TOP12AND,
    TOP12SUCHAS_AND,
    TOP12COMME_ET,
    TOP12WIE_UND
}

私の単体テストでは、これらの値のそれぞれで getPrefix を呼び出していますが、ここで 100% のブランチ カバレッジが得られないのはなぜですか?

私が実行している単体テストは次のとおりです。

@Test
public void testGetPrefixWithTOP123() {
    TopBrandTouchpointParameterSource source = new TopBrandTouchpointParameterSource(urlComposer, TouchpointParameterHelper.BrandParamType.TOP123);
    TopBrandTouchpointParameterSource.TopBrandPrefix prefix = source.getPrefix();
    assertEquals(TopBrandTouchpointParameterSource.TopBrandPrefix.NULL, prefix);
}

@Test
public void testGetPrefixWithTOP456() {
    TopBrandTouchpointParameterSource source = new TopBrandTouchpointParameterSource(urlComposer, TouchpointParameterHelper.BrandParamType.TOP456);
    TopBrandTouchpointParameterSource.TopBrandPrefix prefix = source.getPrefix();
    assertEquals(TopBrandTouchpointParameterSource.TopBrandPrefix.NULL, prefix);
}

@Test
public void testGetPrefixWithTOP123LINKED() {
    TopBrandTouchpointParameterSource source = new TopBrandTouchpointParameterSource(urlComposer, TouchpointParameterHelper.BrandParamType.TOP123LINKED);
    TopBrandTouchpointParameterSource.TopBrandPrefix prefix = source.getPrefix();
    assertEquals(TopBrandTouchpointParameterSource.TopBrandPrefix.NULL, prefix);
}

@Test
public void testGetPrefixWithTOP456LINKED() {
    TopBrandTouchpointParameterSource source = new TopBrandTouchpointParameterSource(urlComposer, TouchpointParameterHelper.BrandParamType.TOP456LINKED);
    TopBrandTouchpointParameterSource.TopBrandPrefix prefix = source.getPrefix();
    assertEquals(TopBrandTouchpointParameterSource.TopBrandPrefix.NULL, prefix);
}

@Test
public void testGetPrefixWithTOP12() {
    TopBrandTouchpointParameterSource source = new TopBrandTouchpointParameterSource(urlComposer, TouchpointParameterHelper.BrandParamType.TOP12);
    TopBrandTouchpointParameterSource.TopBrandPrefix prefix = source.getPrefix();
    assertEquals(TopBrandTouchpointParameterSource.TopBrandPrefix.NULL, prefix);
}

@Test
public void testGetPrefixWithTOP12AND() {
    TopBrandTouchpointParameterSource source = new TopBrandTouchpointParameterSource(urlComposer, TouchpointParameterHelper.BrandParamType.TOP12AND);
    TopBrandTouchpointParameterSource.TopBrandPrefix prefix = source.getPrefix();
    assertEquals(TopBrandTouchpointParameterSource.TopBrandPrefix.NULL, prefix);
}

@Test
public void testGetPrefixWithTOP12SUCH_AS() {
    TopBrandTouchpointParameterSource source = new TopBrandTouchpointParameterSource(urlComposer, TouchpointParameterHelper.BrandParamType.TOP12SUCHAS_AND);
    TopBrandTouchpointParameterSource.TopBrandPrefix prefix = source.getPrefix();
    assertEquals(TopBrandTouchpointParameterSource.TopBrandPrefix.SUCHAS, prefix);
}

@Test
public void testGetPrefixWithTOP12COMME_ET() {
    TopBrandTouchpointParameterSource source = new TopBrandTouchpointParameterSource(urlComposer, TouchpointParameterHelper.BrandParamType.TOP12COMME_ET);
    TopBrandTouchpointParameterSource.TopBrandPrefix prefix = source.getPrefix();
    assertEquals(TopBrandTouchpointParameterSource.TopBrandPrefix.COMME, prefix);
}

@Test
public void testGetPrefixWithTOP12WIE_UND() {
    TopBrandTouchpointParameterSource source = new TopBrandTouchpointParameterSource(urlComposer, TouchpointParameterHelper.BrandParamType.TOP12WIE_UND);
    TopBrandTouchpointParameterSource.TopBrandPrefix prefix = source.getPrefix();
    assertEquals(TopBrandTouchpointParameterSource.TopBrandPrefix.WIE, prefix);
}
4

1 に答える 1

1

非常によく似たテストを実行すると、100%のカバレッジが見られます。mvn cobertura:coberturaただし、コード変更後に実行したが、がない場合、ブランチカバレッジの一部しか報告されませんでしたclean。Coberturaの状態を削除してみてください。

于 2013-01-19T13:37:59.323 に答える