Ukázka obecného testu
Publikováno: duben 2016
Ukázka „EvenOdd“ je projekt, který lze sestavit do jednoduchého programu. Tento program lze zabalit jako obecný test. Soubory v tomto příkladu jsou k dispozici pro následující návod: Návod: Vytváření a spouštění obecných testů.
Požadavky
- Visual Studio Enterprise
Ukázky kódu
Tato ukázka kódu je k dispozici zde:
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;
}
}
}
Práce s kódem
Pro práci s tímto kódem je nejprve nutné pro něj vytvořit projekt v sadě Visual Studio. Postupujte podle kroků v části "Připravit the návodu" v Návod: Vytváření a spouštění obecných testů.
Informace o ukázkovém programu EvenOdd
Ukázka EvenOdd je konzolová aplikace napsaná v jazyce Visual C#. Vrátí hodnotu 1 nebo 0 v závislosti na argumentu, který ji předáte:
Pokud nepředáte žádný argument a pole sekund aktuálního systémového času obsahuje sudé číslo, vrátí program hodnotu 0. Pokud nepředáte žádný argument a pole sekund aktuálního systémového času obsahuje liché číslo, vrátí program hodnotu 1.
Pokud předáte jeden číselný argument a předané číslo je sudé, vrátí program hodnotu 0. Pokud je předané číslo liché, vrátí program hodnotu 1. Pokud předáte nečíselný argument, vrátí program hodnotu 1. To způsobí, že obecný test, který zabaluje program, vygeneruje jako výsledek selhání.
Pokud předáte dva argumenty a druhý argument představuje soubor, který existuje ve stejném adresáři jako program, vrátí program hodnotu 0. V opačném případě vrátí hodnotu 1.
Všechny ostatní případy selžou.