亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 IActionResult 中提取列表

如何從 IActionResult 中提取列表

C#
開滿天機 2021-08-07 18:00:00
我正在嘗試測試返回IActionResult. 目前它正在返回一個帶有狀態代碼、值等的對象。我試圖只訪問該值。List<Batch.Context.Models.Batch> newBatch2 = new List<Batch.Context.Models.Batch>();var actionResultTask = controller.Get();actionResultTask.Wait();newBatch2 = actionResultTask.Result as List<Batch.Context.Models.Batch>;actionResultTask.Result返回一個列表,其中包含一個列表“值”,它是一個列表,Batch.Context.Models.Batch我無法訪問此值。將其轉換為列表后,它變為null。這是控制器[HttpGet][ProducesResponseType(404)][ProducesResponseType(200, Type = typeof(IEnumerable<Batch.Context.Models.Batch>))][Route("Batches")]public async Task<IActionResult> Get(){    var myTask = Task.Run(() => utility.GetAllBatches());    List<Context.Models.Batch> result = await myTask;    return Ok(result);}如何以列表形式訪問該值。
查看完整描述

1 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

這是因為Result的Task是一個IActionResult派生類,OkObjectResult


使測試異步。等待被測方法。然后執行所需的斷言。


例如


public async Task MyTest {


    //Arrange

    //...assume controller and dependencies defined.


    //Act

    IActionResult actionResult = await controller.Get();


    //Assert

    var okResult = actionResult as OkObjectResult;

    Assert.IsNotNull(okResult);


    var newBatch = okResult.Value as List<Batch.Context.Models.Batch>;

    Assert.IsNotNull(newBatch);


    //...other assertions.

}


查看完整回答
反對 回復 2021-08-07
  • 1 回答
  • 0 關注
  • 491 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號