gpt4 book ai didi

PHPUnit 和 C.R.A.P 索引

转载 作者:IT王子 更新时间:2023-10-29 00:10:20 25 4
gpt4 key购买 nike

我正在使用 php undercontrol,代码浏览器在每个 setter/getter 上报告一些 CRAP 索引错误,即像这样的代码

public function getFoo()
{
return $this->_foo;
}

单元测试涵盖了getter/setter,没有if/for/switch/foreach 的复杂性。那么为什么我得到该代码的 CRAP 索引为 1???

PS: self 回答可能是因为没有复杂性,但我的主要问题是每个 getter/setter 都会因为 CRAP 索引而生成警告,所以无论如何要告诉 phpunit/php 代码覆盖率使 CRAP 等于0 表示复杂度指数为 0 的函数。

最佳答案

最低CRAP分数是1,不是0。这是因为CRAP的算法是

CRAP(m) = comp(m)^2 * (1 – cov(m)/100)^3 + comp(m)

并且函数的最小圈复杂度 (comp) 值为一。所以问题不在 phpunit 中,而是任何将 CRAP 标记为 1 的问题。

一般来说,您希望将 CRAP 阈值设置在 5 左右或更低的任何位置,您也可以使用简单的代码覆盖率指标(并争取 100%),因为复杂性因素几乎没有影响。一个 CRAP > = 30 意味着再多的测试也无法使您的方法变得糟糕。

圈复杂度通常(但有不止一种定义)可以手工计算为:

  • 函数调用加1分
  • 每循环加1分
  • 每个分支加1分

关于PHPUnit 和 C.R.A.P 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7670198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com