这可能是一个愚蠢的问题,如果是这样,我表示歉意。
我试图为我在VB中工作的一些代码找出确切的路径数。我了解路径测试。大多。但是,我给出了带有退出子项的ELSE条件的IF语句。
我的程序只有4个IF语句,用于检查4个带有等数字的文本输入。如果它们是数字,则继续进行所有操作,完成计算,并在标签中显示结果。一切对世界都是正确的。但是,如果输入不是数字,则IF语句的ELSE部分会弹出有关该问题的文本框,然后退出子目录以避免错误。这些ELSE语句是否具有退出子程序的预期结果的单独路径?还是程序继续运行,仅仅是到达另一个IF语句还是结果的最后显示的路径?
我感谢您可以提供的任何说明。
答案 0 :(得分:1)
在“解决方案资源管理器”中右键单击该项目,然后选择“分析”,然后选择“计算代码度量”。将显示圈数复合体(计算代码做出的决策数)。
对于以下情况,圈复杂度为5。(是的,Else语句是单独的路径。)
Module Module1
Sub Main()
Dim text1 As String = "abc"
Dim text2 As String = "1bc"
Dim text3 As String = "12c"
Dim text4 As String = "123"
If Not IsNumeric(text1) Then
Console.WriteLine("Error -- text1!")
Exit Sub
ElseIf Not IsNumeric(text2) Then
Console.WriteLine("Error -- text2!")
Exit Sub
ElseIf Not IsNumeric(text3) Then
Console.WriteLine("Error -- text3!")
Exit Sub
ElseIf Not IsNumeric(text4) Then
Console.WriteLine("Error -- text4!")
Exit Sub
End If
Console.WriteLine("Do happy path processing")
End Sub
End Module