2013-10-03 3 views
2

아래 간단한 테스트 방법이 있습니다.Nunit 2.6.2에서 비동기 테스트가 중단됩니다.

[Test] 
     public async Task OneSimpleTest1() 
     { 
      var eightBall = new EightBall(); 
      var answer = await eightBall.WillIWin(); 

      Assert.That(answer, Is.True); 
     } 

테스트 클래스는이

public class EightBall 
    { 
     public Task<bool> WillIWin() 
     { 
      return new Task<bool>(() => true); 
     } 
    } 

처럼 나는 아래의 명령을 사용하여 NUnit과 2.6.2에서 테스트를 실행 보인다.

NUNIT - Console.exe를 EightBall.dll /framework:net-4.5

그러나, 테스트가 반환하지 않는 것 영원히 중단됩니다. Nunit 2.6.2로 비동기 테스트를 실행하는 특별한 방법이 있습니까? 나는 비동기가 Nunit 2.6.2를 사용하여 지원되었다고 생각했다.

+3

시도'대신 작업의 생성자의 Task.Run'을 작동하도록, 또는', 작업 값을 래핑하는 return Task.Run(()=> true); 또는 return Task.FromResult<bool>(true)

당신은 또한

public Task<bool> WillIWin() { var task = new Task<bool>(() => true); task.Start(); return task; } 

에 코드를 변경할 수 있습니다 사용 .FromResult'. –

답변

5

return new Task<bool>(() => true);은 작업을 만들지 만 시작하지는 않는다. 더 나은이