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の
感謝を作る
完璧でした。あなたはそれを説明してもらえますか? –
私は答えを編集してより多くの説明を提供しました - 今はっきりしていますか? – christophetd
はい私はそれを得た。ありがとう、クリス。 –