gpt4 book ai didi

c# - Visual Studio 中的圈复杂度

转载 作者:行者123 更新时间:2023-12-03 23:15:07 26 4
gpt4 key购买 nike

我使用 Visual Studio Code 指标进行了一些测试。因为我可以计算圈复杂度,每个 if , while , for - 运营商增加了 1 的复杂性。我有下一个简单的方法:

static bool ContainsNegative(int a, int b, int c, int d)
{
if (a < 0 || b < 0 || c < 0 || d < 0) return false;
return true;
}

但是对于它,圈复杂度是 5,而不是 2(方法为 1 + if 为 1)。
我的问题是 - 这是因为代码度量计算 if 中的每个条件运算符作为不同的 if ? IE。我的方法相当于:
static bool ContainsNegative(int a, int b, int c, int d)
{
if (a < 0) return false;
if (b < 0) return false;
if (c < 0) return false;
if (d < 0) return false;
return true;
}

这是一个显示结果的屏幕:
Cyclomatic Complexity in Visual Studio

另外,是否有详细描述的所有规则的列表?

谢谢!

最佳答案

圈复杂度测量通过函数的路径数。正如您所建议的那样,这意味着为每个控制流语句添加 1,并为每个条件中的每个逻辑 NOT、AND 和 OR 添加 1。

5 的值告诉您,您将需要 5 个单元测试才能获得 100% 的函数代码覆盖率。

关于c# - Visual Studio 中的圈复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52626591/

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