如何将 cookie 添加到 DefaultHttpContext

zer*_*ing 7 c# asp.net cookies unit-testing asp.net-core

我有一个期望 HttpRequest 作为参数的函数:

public string Read(HttpRequest req)
{
  if (req.Headers["X-Requested-With"] == "XMLHttpRequest")
  {
    return req.Headers[ConfigurationManager.AppSettings["ajaxsession"]];
  }

  return req.Cookies[ConfigurationManager.AppSettings["cookiename"]];
}
Run Code Online (Sandbox Code Playgroud)

我写了一个单元测试

[Test]
public void ReadSessionToken_BrowserRequest_ExpectSidToken()
{
  var repo = new DefaultHttpContext();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何将 cookie 添加到repo.Request.Cookies?

ade*_*lin 9

我没有测试,但在 github repo 中有一个设置和获取 cookie的测试

var newCookies = new[] { "name0=value0%2C", "%5Ename1=value1" };
request.Headers["Cookie"] = newCookies;
Run Code Online (Sandbox Code Playgroud)

更新

测试和工作。