2012-11-28 2 views
0

시험에서 표준 입력 모방 :처럼 사용할 수 있습니다 내가 응용 프로그램을 가지고

type file.txt|app.exe -i 

을 즉 내 애플 리케이션 file.txt에서 데이터를 읽습니다.

이제 app이 file.txt의 일부 특수 데이터와 잘 작동하는지 확인하기위한 테스트를 작성하려고합니다.

구성 방법? 말,

using(App app = new App()) 
{ 
    result = app.Run(args) 
} 
if (result != 0) 
Assert.Fail("Failed"); 

답변

1

당신은 자신의 개체와 콘솔 입력을 대체 할 수

내 응용 프로그램은 간단한 테스트에

input = Console.In.ReadToEnd(); 

같은 입력 단순히 같은 응용 프로그램 클래스를 사용하고 데이터를 읽지 않고 읽어 StringReader을 입력하고 원하는 모든 입력을 제공하십시오.

var oldIn = Console.In; 
try 
{ 
    Console.SetIn(new StringReader("some input")); 

    using (App app = new App()) 
    { 
     // input = Console.In.ReadToEnd(); happens here 
     result = app.Run(args); 
    } 

    if (result != 0) 
    { 
     Assert.Fail("Failed"); 
    } 
} 
finally 
{ 
    Console.SetIn(oldIn); 
} 
관련 문제