我写了一个布尔函数。
public boolean func(String someString) {
try {
if (someCondition) {
return true;
}
} catch (Exception e) {
return false;
}
return false;
}
然而,最后一个返回是无法到达的。但我写它是为了满足函数。当我为这个函数编写测试用例时,没有办法覆盖上面代码中的最后一个返回。那么,是否有任何方法可以修改函数以删除无法访问的代码。提前感谢您。
最后一个返回是无法访问的
这是不正确的。
仔细考虑何时达到最后一次返回。只有在以下情况下才能到达:
try
不抛出异常(否则将在catch
中返回(,并且- 则在CCD_ 3中不返回。(或者更专业地说,"
try
块正常完成"(
它什么时候会在try
中返回?因为有一个if
语句而没有else
,所以只有当someCondition
为true时,它才会在try
中返回。如果someCondition
为false,则try
块正常完成,并且将达到最后一个返回。
您只需要考虑一个测试用例,其中someCondition
为false!
这样做:
public boolean func(String someString) {
boolean bool=false;
try {
if (someCondition) {
bool=true
}
} catch (Exception e) {
e.printStackTrace()
}
return bool;
}
在try块中向上移动return,如下所示:
public boolean func(String someString) {
try {
if (someCondition) {
return true;
}
return false;
} catch (Exception e) {
return false;
}
}