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