我根据这段代码的条件进行了单元测试,但它告诉我它没有针对这些条件之一的单元测试
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
的逻辑路径。
我根据这一行进行了单元测试: 如果 (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
的逻辑路径。