저는 매우 간단한 비동기 코드를 작성하고 있습니다. 스레드에서 파일을 저장하는 것뿐입니다.
Microsoft Visual Studio Team System 2008의 MSTest 단위 테스트 프레임 워크를 사용하여이 코드를 테스트하고 싶습니다.
어떻게해야합니까?
메서드가 반환 될 때까지 테스트 메서드를 간단히 차단하고 싶습니다. 이 작업을 수행하는 몇 가지 방법을 상상할 수 있지만 이에 대한 모범 사례 나 도우미 클래스가 없다는 사실에 놀랐습니다.
나는 볼 을 많이 실버 라이트하지만 일반적인 아무것도.
답변
Visual Studio 2012 (이전의 “Visual Studio 11”) 는 비동기 테스트 지원을 도입했습니다 . 다음과 같이 보입니다.
[TestMethod]
public async Task FooTest()
{
var result = await SomeAsyncOperation();
Assert.IsTrue(someCondition);
}
코멘트에 언급 한 바와 같이, 반환 형식은 중요하다 . 메서드를 returning으로 선언하면 작동하지 않습니다 .Task
void
답변
System.IO 메서드를 직접 호출하는 대신 SystemWrapper 라이브러리를 대신 사용해보십시오 . 그런 다음 테스트에서 원하는대로 호출을 모의 처리하고 오류 조건을 포함하여 원하는대로 테스트에 반환하고 논리가 예상대로 작동하는지 확인할 수 있습니다.
예제를 보려면 RhinoMocks와 함께 사용하는 방법을 보여주는 이 블로그 게시물 을 참조하십시오 .