Pep*_*epo 6 c# cyclomatic-complexity code-metrics visual-studio
我使用 Visual Studio Code Metrics 做了一些测试。由于我可以计算圈复杂度,因此每个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;
}
Run Code Online (Sandbox Code Playgroud)
但对于它来说,圈复杂度是 5,而不是 2(1 表示方法 + 1 表示if)。我的问题是 - 这是因为代码指标将if运算符中的每个条件计算为不同的if?即我的方法相当于:
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;
}
Run Code Online (Sandbox Code Playgroud)
另外,有没有详细描述所有规则的列表?
谢谢你!
圈复杂度衡量通过函数的路径数量。正如您所建议的,这意味着为每个控制流语句添加 1,并为每个条件中的每个逻辑 NOT、AND 和 OR 添加 1。
5 的值告诉您,您将需要 5 次单元测试才能获得函数的 100% 代码覆盖率。
| 归档时间: |
|
| 查看次数: |
6456 次 |
| 最近记录: |