Тестирование пути, если оно не числовое - PullRequest
0 голосов
/ 02 марта 2019

Это может быть глупый вопрос, и если это так, я прошу прощения.

Я пытаюсь выяснить точное количество путей для небольшого кода, над которым я работаю в VB.Я понимаю путь тестирования.В основном.Но у меня не хватает предложений IF с условием ELSE, которое выходит из подпрограммы.

В моей программе только 4 оператора IF, которые проверяют 4 ввода текста с помощью числовых.Если они числовые, все продолжается, вычисления выполняются и результаты отображаются в метках.С миром все в порядке.Однако, если вход не является числовым, часть ELSE операторов IF выводит текстовое поле о проблеме и выходит из подпрограммы, чтобы избежать ошибок.Являются ли эти операторы ELSE индивидуальными путями с ожидаемым результатом выхода из подпрограммы?Или это только путь, если программа продолжается, до другой инструкции IF или до конца отображения результатов?

Я ценю любые разъяснения, которые могут быть предоставлены.

1 Ответ

0 голосов
/ 02 марта 2019

Щелкните правой кнопкой мыши проект в обозревателе решений, выберите «Анализ», а затем «Рассчитать метрики кода».Цикломатический комплекс (который подсчитывает количество решений, которые принимает код) будет отображаться.

Для следующего цикломатическая сложность равна 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...