Oge*_*gen 1 testing code-coverage
我知道如果我有这样的if语句......
if (x == y) {
foobar++;
} else {
if (x == z) {
foobar++;
}
}
Run Code Online (Sandbox Code Playgroud)
将有4个分支遍历以获得100%的分支覆盖率.2来自外部if - else,1来自内部if语句,另一个来自if if不进入内部if语句.
但是,对于像这样的事情......
if (x == y) {
foobar++;
} else {
while (x < z) {
x++;
}
}
Run Code Online (Sandbox Code Playgroud)
100%分支覆盖还需要4个分支机构吗?也就是说,不会从else语句计数作为单独的分支进入while循环?
谢谢.
首先:没有if循环.它被称为if语句.
至于你的问题:你的第一个例子只有3个分支.第一个if创建两个分支.在你的else另外两个分支中创建,但这不会加起来4,因为它们是你的子分支else.
if
/ \
1 else
|
if
/ \
2 3
Run Code Online (Sandbox Code Playgroud)
对于while循环的分支覆盖,它有点复杂.从理论上讲,循环会创建一个可能无限数量的分支,因为您不知道它将运行的频率.有几种实用的方法来测量环路的覆盖范围.最简单的是有两个分支.一个执行循环块的地方,一个不执行它的地方.在这种情况下,您的示例中仍然会有3个分支.还有可能考虑循环的三个分支:不运行,运行一次并运行多次.如果使用这样的覆盖率测量,则在第二个示例中将有4个分支.
| 归档时间: |
|
| 查看次数: |
5617 次 |
| 最近记录: |