Поделиться через


Пример обычного теста

Пример "EvenOdd" — это проект, из которого можно построить простую программу.Затем эту программу можно включить в универсальный тест.Файлы данного примера предоставлены для пошагового руководства Пошаговое руководство. Создание и выполнение обычного теста.

Требования

  • Visual Studio Ultimate, Visual Studio Premium

Пример кода

Код этого примера доступен здесь:


using System;
using System.Globalization;
using System.IO;

namespace EvenOdd
{
    class TestSecondsOrNumbersOrFiles
    {
        /* Purpose: Wrap this sample app to create a generic test that passes or fails.  

           When you run the EvenOdd app, it exhibits the following Pass/Fail behavior: 
           * Pass zero arguments: EvenOdd randomly returns 1 (Fail) or 0 (Pass).  
           * Pass one (integer) argument: EvenOdd returns 1 if the argument is odd, 0 if even. 
           * Pass two arguments: EvenOdd ignores the first argument and uses only the second one, a string.  
             If the file named by that string has been deployed, EvenOdd returns 0 (Pass); otherwise 1 (Fail). 
        */ 

        [STAThread]
        public static int Main(string[] args)
        {
            // If no argument was supplied, test whether the value of Second is even.
            if (args.Length == 0)
                return TestNumber(DateTime.Now.Second);

            // If only a single numeric (integer) argument was supplied, 
            // test whether the argument is even.
            if (args.Length == 1)
            {
                try
                {               
                    int num = Int32.Parse(args[0], CultureInfo.InvariantCulture);                     
                    return TestNumber(num);
                }
                // catch non-integer argument for args[0]
                catch (FormatException)
                {
                    Console.WriteLine("Please type an integer.");
                    return 1;
                }
                // catch too-large integer argument for args[0]
                catch (OverflowException)
                {                    
                    Console.WriteLine("Type an integer whose value is between {0} and {1}.", int.MinValue, int.MaxValue);
                    return 1;
                }

            }
            // If two arguments are supplied, the test passes if the second
            // argument is the name of a file that has been deployed. 
            if (args.Length == 2)
            {
                if (File.Exists(args[1]))
                    return 0;              
            }
            // Test fails for all other cases
            return 1;                        
        }

        public static int TestNumber(int arg)
        {
            return arg % 2;
        }
    }
}

Работа с кодом

Для работы с этим кодом необходимо сначала создать для него проект в Visual Studio.Выполните шаги в разделе "Подготовка к выполнению пошагового руководства" в руководстве Пошаговое руководство. Создание и выполнение обычного теста.

О примере программы EvenOdd

Пример EvenOdd представляет собой консольное приложение Visual C#.В зависимости от переданного аргумента оно возвращает значение 1 или 0.

  • Если аргумент не передается и значение в поле секунд текущего системного времени является четным, программой возвращается 0.Если аргумент не передается и значение в поле секунд является нечетным, программой возвращается 1.

  • Если передается простой числовой аргумент, то при четном передаваемом числе программой возвращается 0.При передаче нечетного числа программой возвращается 1.Если передается нечисловой аргумент, программой возвращается 1.При этом обычный тест, который образует оболочку программы, выдает результат "Не пройден".

  • При передаче двух аргументов программа возвращает 0, если второй аргумент представляет файл, существующий в том же каталоге, в котором находится программа; в противном случае программа возвращает 1.

  • Все прочие случаи приводят к результату неудачи.

См. также

Задачи

Пошаговое руководство. Создание и выполнение обычного теста