asp.net core OkObjectResult 和 IActionResult 与单元测试不允许我循环遍历 List - 嵌套 Result.Value

问题描述 投票:0回答:1

我正在尝试使用 asp.net core 编写一个单元测试,其中我的代码如下所示

[TestMethod]
public void NotificationController_should_return_notifications()
{
    //Act
    var controller = new NotificationsController(_dbContext, _logger);
    IActionResult actionResult = controller.Get();

    OkObjectResult okObjectResult = actionResult as OkObjectResult;

    var model = okObjectResult.Value; //as List<Notification>;

当其他人没有嵌套分页对象时,他们可以这样做

    var model = okObjectResultValue as TrainingMessages;

但是,对于我的复杂对象,模型最终为空,因为集合对于分页等过于复杂......

我想做的只是为了获取我在手表中看到的数据

okObjectResult.Value.Results[0].Id

但这对我来说不可用,为什么?

这是代码和手表的图片

c# asp.net unit-testing asp.net-core mstest
1个回答
0
投票

您有一个嵌套的 Result.Value,很可能是因为您正在这样做:

我的Create方法调用GetDashboard来返回新插入的Dashboard。但是,我将 Ok(结果) 返回到 OK。所以它正在返回(好的(好的(结果))。

解决办法(只返回一个就OK了):

return await GetDashboard(dashboardId); 
© www.soinside.com 2019 - 2024. All rights reserved.