首页 > 解决方案 > 如何在 xUnit 中设置 cookie

问题描述

以下是我的控制器中的方法,

public IActionResult Cookiewrite(string key, string value)
{
    CookieOptions options = new CookieOptions();
    options.Expires = DateTime.Now.AddHours(1);
    HttpContext.Response.Cookies.Append(key, value, options);
    return View("Cookiewrite");
}

我正在尝试使用 xUnit 进行测试,如下所示。

 [Fact]
 public void CookieWriteTest()
 {
     string key = "xxxx";
     string value = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
      
     var result = homeController.Cookiewrite(key, value);
  }

但是设置cookie时出现空错误的问题(Microsoft.AspNetCore.Mvc.ControllerBase.HttpContext.get返回空。)。谁能帮助我如何做到这一点。因为我是 xUnit 的新手。

标签: c#asp.net-corexunitxunit.netasp.net-core-5.0

解决方案


更改如下:

[Fact]
public void Test1()
{
    var controller = new HomeController();

    //be sure add this...
    controller.ControllerContext.HttpContext = new DefaultHttpContext();

    string key = "xxxxxx";
    string value = "xxxxxxxx";
    var result = controller.Cookiewrite(key, value);
}

推荐阅读