2017-02-22 220 views
3

我有一個非常簡單的NUnit測試,它正在調用異步方法。NUnit不會等待異步任務完成

當然測試正在等待像它應該是:

public async void Test() 
{ 
    var controller = new Controller(mockService.Object); 

    var model = new MyObject 
    { 
     Address = "12.12.12.12", 
     Password = "123456", 
     Username = "John Foo" 
    }; 

    var res = await controller.Add(model); 
} 

當我運行測試它不會等待Add方法來完成,即使我告訴它這樣做(await

+1

只要記住'異步void'是「射後不理」。 – juharr

回答

4

您需要更新測試返回async Task

public async Task Test() { 
    var controller = new Controller(mockService.Object); 

    var model = new MyObject 
    { 
     Address = "12.12.12.12", 
     Password = "123456", 
     Username = "John Foo" 
    }; 

    var res = await controller.Add(model); 
} 
+0

就是這樣!謝謝 –