У меня есть контроллер mvc 5, который использует некоторый код доступа к асинхронному доступу. Я написал простой тест, используя nUnit. Тест не завершается, он просто вращается, пока я его не отменил. afaik, я правильно настроил тест; он ожидает, что действие контроллера помечено как асинхронное и возвращает задачу. Я что-то упускаю? Интересно, что тест работает, когда я изворачиваю зависимости с помощью moq, но если я иду на интеграционный тест с фактическими зависимостями на месте, он просто вращается навсегда.Тесты nunit не завершаются при тестировании контроллера async mvc5 (vs 2015)
упрощенный тест:
[Test]
public async Task Get_WhenProductHasData_ReturnsView()
{
// Arrange
...
// Act
PartialViewResult actualResult = await _controller.Widget(_productId1) as PartialViewResult;
// Assert
Assert.That(actualResult, Is.Not.Null);
...
}
А вот упрощенный контроллер
public async Task<ActionResult> Widget(string productId)
{
ProductStats stats = await _statsService.GetProductStatsAsync(productId);
return PartialView(stats);
}
Вы должны указать, что вы хотите, чтобы ожидаемая задача возвращалась как PartialViewResult, а не сама задача, заметила добавленную скобку. 'PartialViewResult actualResult = (ожидание _controller.Widget (_productId1)) как PartialViewResult;' – Igor
Спасибо за ответ Igor. Однако это не сработало. Все еще спины ... – MarcusP