簡體   English   中英

具有異步任務的單元測試ASP.NET MVC 5控制器<ActionResult>

[英]Unit test ASP.NET MVC 5 Controller with async Task<ActionResult>

目前,我正在嘗試對Controller和ViewModel進行一些單元測試。 我的控制器功能是這樣的: 在此處輸入圖片說明 它調用一個私有方法來獲取用戶信息作為輔助函數: 在此處輸入圖片說明

並將用戶信息存儲在viewModel中,然后將viewModel推送到客戶端。

問題是如何對該控制器和關聯的viewModel進行聯合測試?

這是我的單元測試用例: 在此處輸入圖片說明

它返回一個沒有viewModel數據的Task。 如何訪問與viewModel相關的數據?

讓我知道我提供的信息是否不足。

您應該await異步方法,並且應該遵循“一路異步”規則。

var result = await _controller.Index("644405",DateTime.Now);

而且,您必須將單元測試方法更改為async

您的單元測試應如下所示:(NUnit示例)

[Test]
public async Task ShouldGetValidViewObject_async()
{
    var result = await _controller.Index("644405", DateTime.Now);
    Assert.// your assertion goes here
}

或像這樣(同步)

[Test]
public void ShouldGetValidViewObject()
{
    var result = _controller.Index("644405",DateTime.Now).Result;
    Assert.// your assertion goes here
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM