java - 使用 JUnit 和 Mockito 测试方法以增强分支覆盖率

标签 java junit mockito cobertura

我正在编写一个 JUnit 来增强方法的行和分支覆盖率。正在测试的方法中只剩下一行,我试图覆盖它,但不知何故它没有被覆盖。我尝试使用 Mockito 使其变得更简单,但 if( o != null )Cobertura 报告中仍然显示为红色。

测试方法:

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

提前致谢

最佳答案

怎么样:

params.put("Object3", null);

在调用handleParams之前?

这样,当您在 handleParams 中调用 params.get("Object3") 时,您将获得与键 Object3 关联的值code>,在本例中为 null

关于java - 使用 JUnit 和 Mockito 测试方法以增强分支覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37279991/

相关文章:

java - Volley.NoConnectionError : java. io.EOFException 0

java - Antlr异常: there is no serialized ATN

java - 如何设置列表元素计数为0.有什么办法

java - 测试具有方法依赖性的 util 类

java - 从 PDFBox 剥离时的文本坐标

java - isEmpty() 堆栈方法的 JUnit 测试

java - Spring 重试Junit : Testing Retry template with Custom Retry Policy

java - 如何编写不等于某物的匹配器

java - 如何验证是否使用任何参数调用了方法?

unit-testing - 如何使用 Mockito 在父类中注入(inject)模拟?