我刚刚开始使用 PHPUnit 及其丰富多彩的代码覆盖率报告。我了解所有的数字和百分比,除了一个:C.R.A.P 指数。谁能给我一个可靠的解释,解释它的含义、如何分析它以及如何降低它?
@Toader Mihai 提供了可靠的解释。 https://stackoverflow.com/a/4731869/5441(我的+1)
如何降低:
编写不太复杂的代码或编写经过更好测试的代码。 (见下图)
更好的测试代码?
在这种情况下,这仅意味着:更高的代码覆盖率,通常会导致编写更多的测试。
不太复杂的代码?
例如:将您的方法重构为更小的方法:
// Complex
function doSomething() {
if($a) {
if($b) {
}
if($c) {
}
} else {
if($b) {
}
if($c) {
}
}
}
// 3 less complex functions
function doSomething() {
if($a) {
doA();
} else {
doNotA();
}
}
function doA() {
if($b) {
}
if($c) {
}
}
function doNotA() {
if($b) {
}
if($c) {
}
}
(只是一个简单的例子,我确信您会找到更多资源)
其他资源:
首先让我提供一些额外的资源:
关于垃圾索引的创作者博客文章 http://www.artima.com/weblogs/viewpost.jsp?thread=210575
万一:圈复杂度解释 http://en.wikipedia.org/wiki/Cyclomatic_complexity。 PHP_CodeSniffer 和 PHPMD 等工具会告诉您该数字,以防您想知道。
虽然由你来决定什么数字是“好的”,但一个经常建议的数字(恕我直言,这个数字有点高)是一个垃圾指数30得到这样的图:
(You can get the .ods file here: https://www.dropbox.com/s/3bihb9thlp2fyg8/crap.ods?dl=1 https://www.dropbox.com/s/3bihb9thlp2fyg8/crap.ods?dl=1 )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)