我正在尝试从返回IActionResult
的API控制器测试结果。目前它正在返回一个具有状态代码,值等的对象。我正在尝试仅访问该值。
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
返回一个列表,其中包含一个列表“Value”,它是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);
}
如何以列表形式访问该值。
答案 0 :(得分:4)
这是因为Result
的{{1}}是Task
派生类,IActionResult
使测试异步。等待测试中的方法。然后执行所需的断言。
例如
OkObjectResult