2017-02-22 101 views
3

У меня очень простой тест NUnit, который вызывает асинхронный метод.NUnit не ждет завершения задачи async

Конечно испытание ждет, как это должно быть:

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

вот и все! благодаря –