我根据这个代码的条件进行了单元测试,但它表明它没有针对其中一个条件的单元测试

  • 本文关键字:单元测试 条件 一个 代码 junit
  • 更新时间 :
  • 英文 :


我根据这一行进行了单元测试: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条件,因为这是您使用的唯一条件。

然而,编译后的代码块包括ifelse的分支,即使您从未使用过else。为了达到100%的测试覆盖率,您必须包括一个到达(空)else的逻辑路径。

最新更新