我根据这段代码的条件进行了单元测试,但它告诉我它没有针对这些条件之一的单元测试

I have unit test according conditions of this code, but it shows me it does not have unit test for one of these condition

我根据这一行进行了单元测试: 如果 (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);
        }
if (sortBy.compareToIgnoreCase(PROPERTY_VALUE) == 0) {

这需要 两次 测试。一种是条件 true,另一种是 false。大概您只是在测试 true 条件,因为这是您使用的唯一条件。

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