【问题标题】:How to set cookie in xUnit如何在 xUnit 中设置 cookie
【发布时间】:2021-06-04 11:30:56
【问题描述】:

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

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 时遇到 null 错误(Microsoft.AspNetCore.Mvc.ControllerBase.HttpContext.get 返回 null。)。谁能帮助我如何做到这一点。因为我是 xUnit 的新手。

【问题讨论】:

    标签: c# asp.net-core xunit xunit.net asp.net-core-5.0


    【解决方案1】:

    如下改变:

    [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);
    }
    

    【讨论】:

    • 感谢您的帮助,它成功了。我还有一个疑问,如果我想在 xUnit 中读取 cookie,我该怎么办?
    • 嗨@Udaya,你的方案是什么?为什么要在 xUnit 中读取 cookie?
    • 我有一个方法。在那,我正在阅读这样的cookie -> string cookieData = Request.Cookies["XXXX"];问题是在编写 xUnit 时我得到了空值。
    • 我添加了一个问题,如果你能回答的话。 stackoverflow.com/questions/67832702/…
    • 嗨@Udaya,你在xUnit 项目中读到的cookieData 吗?如果是这样,那似乎是不可能的。
    猜你喜欢
    • 2021-08-22
    • 1970-01-01
    • 2017-10-14
    • 2018-11-18
    • 2012-08-01
    • 2021-05-19
    • 2018-06-14
    • 2015-09-08
    • 2020-01-05
    相关资源
    最近更新 更多