[.net] MSTest를 사용하여 비동기 코드를 테스트하는 방법

저는 매우 간단한 비동기 코드를 작성하고 있습니다. 스레드에서 파일을 저장하는 것뿐입니다.

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으로 선언하면 작동하지 않습니다 .Taskvoid


답변

System.IO 메서드를 직접 호출하는 대신 SystemWrapper 라이브러리를 대신 사용해보십시오 . 그런 다음 테스트에서 원하는대로 호출을 모의 처리하고 오류 조건을 포함하여 원하는대로 테스트에 반환하고 논리가 예상대로 작동하는지 확인할 수 있습니다.

예제를 보려면 RhinoMocks와 함께 사용하는 방법을 보여주는 이 블로그 게시물 을 참조하십시오 .


답변