Amostra de teste genérica
O exemplo "EvenOdd" é um projeto que você pode compilar em um programa simples. Assim, é possível encapsular esse programa como um teste genérico. Os arquivos desse exemplo são fornecidos para a seguinte explicação passo a passo: Instruções passo a passo: criando e executando um teste genérico.
Requisitos
- Visual Studio Ultimate, Visual Studio Premium
Código de exemplo
O código desse exemplo está disponível aqui:
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;
}
}
}
Trabalhando com o código
Para trabalhar com esse código, primeiramente, você precisa criar um projeto para ele no Visual Studio. Siga as etapas na seção "Preparar a explicação passo a passo" em Instruções passo a passo: criando e executando um teste genérico.
Sobre o programa de exemplo EvenOdd
O exemplo EvenOdd é um aplicativo de console do Visual C#. Ele retorna um valor de 1 ou 0, dependendo do argumento passado:
Se você não passar nenhum argumento e o campo de segundos da hora do sistema atual for par, o programa retornará 0. Se você não passar nenhum argumento e o valor do campo de segundos for ímpar, o programa retornará 1.
Se você passar um único argumento numérico e o número passado for ímpar, o programa retornará 0. Se o número que você passar for ímpar, o programa retornará 1. Se você passar um argumento não numérico, o programa retornará 1. Isso faz com que o teste genérico que encapsula o programa gere um resultado de falha.
Se você passar dois argumentos e o segundo argumento representar um arquivo que existe no mesmo diretório que o programa, o programa retornará 0; caso contrário, o programa retornará 1.
Todos os outros casos falharão.
Consulte também
Tarefas
Instruções passo a passo: criando e executando um teste genérico