我按照这条线进行了单元测试: if(sortBy.compareToIgnoreCase(PROPERTY_VALUE)== 0) 但是,它在我的代码中通过单元测试显示为unCoverage,并且在此行中我有这个通知: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);
}
答案 0 :(得分:1)
if (sortBy.compareToIgnoreCase(PROPERTY_VALUE) == 0) {
这需要两个测试。一个条件是true
,一个条件是false
。大概你只测试true
条件,因为这是你使用的唯一条件。
但是,编译后的代码块包含if
和 else
的分支,即使您从未使用过else
。为了达到100%的测试覆盖率,您必须包含一个到达(空)else
的逻辑路径。