Как написать unit test для метода async/await, я использую Visual Studio 2013.
Предположим, что у нас есть асинхронный метод:
public async Task DoSomethingAsync()
{
...
await _service.DoInternalAsync();
...
}
Поскольку я использую последнюю версию Visual Studio, она имеет хорошую поддержку метода асинхронизации unit test:
[TestMethod]
public async Task DoSomthingAsyncTest()
{
...
await _objectUnderTest.DoSomethingAsync();
// how to verify the result??? here is what I did
_service.Verify(_ => _.DoInternalAsync());
}
В принципе у меня есть два вопроса:
- Как прокомментировано в коде, как проверить результат
Task
? Я сделал это правильно? - Если я запустил этот тест, VS сказал бы, что тест прошел. Но когда я проверяю покрытие кода, предложение
await _service.DoInternalAsync()
, кажется, не покрывается, из представления результатов покрытия кода, он предлагает предложениеMoveNext()
имеет 6 незакрытых блоков. Что не так в нем?