0

我是单元测试的新手,对 C# 也比较陌生。不是很好的组合!我在这个论坛上查看了类似的问题,并尝试了没有成功的解决方案。在我的家庭控制器中,我定义了以下方法。我该如何写一个[MethodTest]for async Task <ActionResult>

家庭控制器

public async Task<ActionResult> Index()
{
    var userId = Request.IsAuthenticated ? HttpContext.User.Identity.GetUserId() : null;
    var thumbnails = await new List<ThumbnailModel>().GetPropertyThumbnailsAsync(userId);

    var count = thumbnails.Count() / 4;
    var model = new List<ThumbnailAreaModel>();
    for (int i = 0; i <= count; i++)
    {
        model.Add(new ThumbnailAreaModel
        {
            Title = i.Equals(0) ? "My Content" : string.Empty,
            Thumbnails = thumbnails.Skip(i * 4).Take(4)
        });
    }

    return View("Index", model);
}

[TestMethod()]
public void Index()
{
    // Arrange

    // Validate model state end

    // Act
    ViewResult result = HomeController.Index() as Task<ActionResult>;

    //Assert
    Assert.IsNotNull(result);
}

如果有人可以帮助或指出我正确的方向,我将不胜感激。

4

1 回答 1

3

你可以声明你的TestMethod async

[TestMethod]
public async Task Index()
{
    // Arrange

    // Validate model state end

    // Act
    ViewResult result = await HomeController.Index();

    //Assert
    Assert.IsNotNull(result);
}
于 2018-12-15T12:07:37.110 回答