Beispiel für einen generischen Test

Aktualisiert: November 2007

Das "EvenOdd"-Beispiel ist ein Projekt, aus dem Sie ein einfaches Programm erstellen können. Sie können dieses Programm dann mit einem generischen Test umschließen. Die Dateien in diesem Beispiel werden für die folgende exemplarische Vorgehensweise zur Verfügung gestellt: Exemplarische Vorgehensweise: Erstellen und Ausführen eines generischen Tests.

Beispielcode

Der Code für dieses Beispiel ist hier verfügbar:

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. Use it in 
           conjunction with the walkthrough topic that covers creating and running a generic test
           in the testing tools section of the Visual Studio Team System documentation. 

           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;
        }
    }
}

Arbeiten mit dem Code

Um mit diesem Code zu arbeiten, müssen Sie dafür zuerst in Visual Studio ein Projekt erstellen. Führen Sie die Schritte des Abschnitts "Exemplarische Vorgehensweise" in Exemplarische Vorgehensweise: Erstellen und Ausführen eines generischen Tests aus.

Informationen zum EvenOdd-Beispielprogramm

Das EvenOdd-Beispiel ist eine Visual C#-Konsolenanwendung. Das Programm gibt in Abhängigkeit vom übergebenen Argument den Wert 1 oder 0 (null) zurück:

  • Wenn kein Argument übergeben wird und das Feld für Sekunden in der aktuellen Systemzeit gerade ist, gibt das Programm 0 zurück. Wenn kein Argument übergeben wird und das Feld für Sekunden ungerade ist, gibt das Programm 1 zurück.

  • Wenn ein einzelnes numerisches Argument übergeben wird und die übergebene Zahl gerade ist, gibt das Programm den Wert 0 zurück. Wenn die übergebene Zahl ungerade ist, gibt das Programm den Wert 1 zurück. Wenn ein nicht numerisches Argument übergeben wird, gibt das Programm ebenfalls den Wert 1 zurück. Dies hat zur Folge, dass der generische Test, mit dem das Programm umschlossen ist, das Ergebnis Fehler liefert.

  • Wenn Sie zwei Argumente übergeben und das zweite Argument eine Datei darstellt, die sich im selben Verzeichnis wie das Programm befindet, gibt das Programm den Wert 0 zurück. Andernfalls wird der Wert 1 zurückgegeben.

  • Alle anderen Argumente führen zu einem Fehler.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Erstellen und Ausführen eines generischen Tests