簡體   English   中英

在XUnit中如何對收到的IActionResult進行解析

[英]In XUnit how to do parsing on IActionResult you receive

如何解析在IActionResult測試中收到的IActionResult

我已經嘗試了以下內容並在行中出現錯誤(返回null

var okObjectResult = actionResult as OkObjectResult;

控制器類

public IActionResult Details(int id)
{
    var pie = _pieRepository.GetPieById(id);

    if(pie==null)
    {
        return NotFound();
    }
    else
    {
        return View(pie);
    }          
}

XUnit測試用例

[Fact]
public async void DetailsTest()
{
    MockPieRepository _data = new MockPieRepository();
    int _id = 1;
    string desc = "Selenium Pie";
    var homecontroller = new HomeController(_data);

    IActionResult actionResult = homecontroller.Details(_id);
    var okObjectResult = actionResult as OkObjectResult;

    Assert.NotNull(okObjectResult);

    var model = okObjectResult.Value as Pie;

    Assert.NotNull(model);         
    Assert.Equal(1, model.Id);
    Assert.Equal(desc, model.ShortDescription);
}

我已經從下面的帖子中引用了代碼,但仍然沒有運氣“ 當IActionResult類型返回結果時如何在Xunit中獲取內容值

OkObjectResult通常由API控制器返回。 在您的特定情況下,控制器返回ViewResult類型。

var actionResult = homecontroller.Details(_id);
var viewResult = actionResult as ViewResult;
var actualPie = viewResult.ViewData.Model as Pie;

Assert.NotNull(model);         
Assert.Equal(1, model.Id);
Assert.Equal(desc, model.ShortDescription);

在ASP.NET Core中測試控制器邏輯

暫無
暫無

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

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