我根据这一行进行了单元测试:if(sortBy.compareToIgnoreCase(PROPERTY_VALUE)==0)然而,在我的代码中,它显示我为unCoverage by unit test,在这一行中,我收到了这样的通知:错过了1个分支。我能做些什么?
// Sort the list
if (StringUtils.isNotBlank(sortBy)
&& !(DEFAULT_SORT_FIELD.equals(sortBy))) {
if (sortBy.compareToIgnoreCase(PROPERTY_NAME) == 0) {
Collections.sort(configurationProperties,
ConfigurationPropertyComparator.NAME);
} else {
if (sortBy.compareToIgnoreCase(PROPERTY_VALUE) == 0) {
Collections.sort(configurationProperties,
ConfigurationPropertyComparator.VALUE);
}
}
} else {
Collections.sort(configurationProperties,
ConfigurationPropertyComparator.ID);
}
if (sortBy.compareToIgnoreCase(PROPERTY_VALUE) == 0) {
这需要两次测试。其中条件为CCD_ 1的一个和其中条件为CCD_。假设您只是在测试true
条件,因为这是您使用的唯一条件。
然而,编译后的代码块包括if
和else
的分支,即使您从未使用过else
。为了达到100%的测试覆盖率,您必须包括一个到达(空)else
的逻辑路径。