제네릭 테스트 샘플
"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이 반환됩니다.
다른 모든 경우는 실패합니다.