2016-05-17 8 views
0

メソッドのラインとブランチのカバレッジを向上させるためにJUnitと書いています。私がカバーしようとしているが、何とかカバーされていないテスト対象のメソッドに残っているのは1行だけです。私はMockitoを使って簡単にしようとしましたが、if(o != null)は赤色になりますCoberturaレポート。テスト中のブランチカバレッジを向上させるためにJUnitとMockitoを使用してメソッドをテストする

方法:

public String handleParams(Map<String, Object> params) { 
    StringBuilder sb = new StringBuilder(); 

    if(params != null) { 
     Set<String> keys = params.keySet(); 
     for(String s : keys) { 
      Object o = params.get(s); 
      if(o != null) { 
       if(sb.length() > 0) { 
        sb.append(","); 
       } 
       sb.append(s + "-" + o.toString()); 
      } 
     } 
    } 

    return sb.toString(); 
} 

JUnitテスト:

@Test 
public void testHandleParams() throws Exception { 
    Map<String, Object> params = new HashMap<>(); 
    params.put("Object1", new Object()); 
    params.put("Object2", new Object()); 

    TestWSAuditHandler handler = new TestWSAuditHandler(); 
    String handle = handler.handleParams(params); 

    assertNotNull(params); 
    assertEquals(2, params.size()); 
    assertTrue(handle instanceof String); 

    // Null Condition 
    params = null; 

    handler = new TestWSAuditHandler(); 
    handle = handler.handleParams(params); 

    assertNull(params); 
    assertEquals(null, params); 
    assertTrue(handle instanceof String); 

    // Mocking params 
    params = Mockito.mock(Map.class); 
    Mockito.when(params.get(Mockito.anyString())).thenReturn(null); 

    handler = new TestWSAuditHandler(); 
    handle = handler.handleParams(params); 
} 

は私が事前にo == nullの

感謝を作る

答えて

1

いかがでしょうか知りたいです:

電話番号 handleParamsに電話する前に、
params.put("Object3", null); 

あなたはhandleParamsparams.get("Object3")を呼び出します。この方法で、あなたは、この場合にはnullあるキーObject3に関連付けられた値を取得します。

+0

完璧でした。あなたはそれを説明してもらえますか? –

+0

私は答えを編集してより多くの説明を提供しました - 今はっきりしていますか? – christophetd

+0

はい私はそれを得た。ありがとう、クリス。 –

関連する問題