我正在为一个方法编写一个JUnit测试用例,并且我获得了50%的分支覆盖率。我已经尝试了两种情况(Null和!Null)但没有运气。
待测方法:
private List<IClientFilter> clientFilters;
public void addFilter( IClientFilter cf ) {
if( clientFilters == null ) {
clientFilters = new ArrayList<IClientFilter>();
}
clientFilters.add( cf );
}
JUnit测试:
@Test
public void testAddFilter() throws ESignatureClientException, Exception {
IClientFilter clientFilter = new ESignatureClientFilter();
new ClientConfiguration().addFilter(clientFilter);
List<IClientFilter> list = new ArrayList<>();
list.add(clientFilter);
assertNotNull(list);
assertFalse(list.isEmpty());
assertEquals(1, list.size());
}
即使clientFilters == null
,Cobertura也没有覆盖if条件任何帮助将不胜感激。 感谢
答案 0 :(得分:1)
要对此方法有100%的覆盖率,您应该拨打addFilter
两次:
clientFilters
列表clientFilters
调用此方法两次将测试是否有效创建了惰性列表clientFilters