Как я могу поставить каждую часть моего массива через тест для возврата результата? - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь проверить testData с помощью кода проверки номера NHS ниже. Как проверить каждую часть массива и получить вывод?

 using System;
public class Program
{
public static void Main()
{
    {
        //Test loop


        string[] testData = { "1234567890", "4444444444", "7777777777", "77777777", "BRADLEYPAU" };
        foreach (string s in testData)
        {

            Console.WriteLine();
        }
    }



    Boolean returnValue;
    String NHSNumber;
    //NHSNumber = "9051292074";
    NHSNumber = "7777777777";
    //NHSNumber = "9434765919";
    //NHSNumber = "PAULBRADLE";
    returnValue = isNHSValid(NHSNumber);

    if (returnValue == true)
    {
        Console.WriteLine(NHSNumber + " looks good");
    }
    else
    {
        Console.WriteLine(NHSNumber + " is invalid!");
    }
}
public static Boolean isNHSValid(string numberToCheck)
{
    if (numberToCheck.Length != 10)
    {
        Console.WriteLine(numberToCheck + " is too long!");
        return false;
    }

    long v;
    if (Int64.TryParse(numberToCheck, out v) == false)
    {
        Console.WriteLine(numberToCheck + " contains non numbers!");
        return false;
    }

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

Ответы [ 2 ]

0 голосов
/ 03 января 2019

В идеале вы можете превратить тесты в проект модульных тестов и вызвать свой код проверки.

Пока вы можете переместить тестируемый код в цикл for (или другую функцию). (Это тоже немного упростит):

public static void Main()
{
    //Test loop

    string[] testData = { "1234567890", "4444444444", "7777777777", "77777777", "BRADLEYPAU" };
    foreach (string NHSNumber in testData)
    {
        if (isNHSValid(NHSNumber)) //note, no need compare with true
        {
            Console.WriteLine(NHSNumber + " looks good");
        }
        else
        {
            Console.WriteLine(NHSNumber + " is invalid!");
        }
        Console.WriteLine();
    }

}
0 голосов
/ 03 января 2019

Как упомянуто в комментариях , используйте созданный вами цикл для перебора каждого string в массиве.Затем передайте каждый string в isNHSValid.

   string[] testData = { "1234567890", "4444444444", "7777777777", "77777777", "BRADLEYPAU" };
   foreach (string NHSNumber in testData)
   {
       bool returnValue;
       returnValue = isNHSValid(NHSNumber);

       if (returnValue == true)
       {
           Console.WriteLine(NHSNumber + " looks good");
       }
       else
       {
           Console.WriteLine(NHSNumber + " is invalid!");
       }
       Console.WriteLine();
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...