gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:55:24 27 4
gpt4 key购买 nike

我正在编写一个 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com