0
我有一個使用一些異步數據訪問代碼的mvc 5控制器。我已經使用nUnit編寫了一個簡單的測試。測試沒有完成,它只是旋轉,直到我取消它。 afaik我已經正確設置了測試;它正在等待控制器操作被標記爲異步並返回一個任務。我錯過了什麼嗎?有趣的是,當我使用moq嘲笑依賴關係時,這個測試是有效的,但是如果我去實際的依賴項進行集成測試,它就會永遠旋轉。當測試異步mvc5控制器時,nunit測試不完成(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
感謝您的答覆伊戈爾。但這並不奏效。仍然只是旋轉... – MarcusP