2017-01-19 4 views

답변

1

당신이 원하는 정보를

private class MockHttpContext : HttpContextBase { 
    private readonly MockRequest request; 
    public MockHttpContext(HttpCookieCollection cookies) { 
     this.request = new MockRequest(cookies); 
    } 

    public override HttpRequestBase Request { 
     get { 
      return request; 
     } 
    } 

    public class MockRequest : HttpRequestBase { 
     private readonly HttpCookieCollection cookies; 
     public MockRequest(HttpCookieCollection cookies) { 
      this.cookies = cookies; 
     } 

     public override HttpCookieCollection Cookies { 
      get { 
       return cookies; 
      } 
     } 
    } 

} 

을 캡슐화하고이

//Arrange 
var cookies = new HttpCookieCollection(); 
cookies.Add(new HttpCookie("ASP.NET_SessionId")); 
cookies.Add(new HttpCookie("__RequestVerificationToken")); 

var context = new MockHttpContext(cookies); 
var Request = context.Request;//This is just for demonstrative purposes 

string[] myCookies = Request.Cookies.AllKeys; 

처럼 사용할 가짜으로 HttpContext를 만들 수 있습니다 또는 당신은 조롱 프레임 워크와 같은 것을 할 수 있습니다.

예는이 예

var cookies = new HttpCookieCollection(); 
cookies.Add(new HttpCookie("ASP.NET_SessionId")); 
cookies.Add(new HttpCookie("__RequestVerificationToken")); 

var mockHttpContext = Substitute.For<HttpContextBase>(); 
mockHttpContext.Request.Cookies.Returns(cookies); 
NSubstitute 사용
var cookies = new HttpCookieCollection(); 
cookies.Add(new HttpCookie("ASP.NET_SessionId")); 
cookies.Add(new HttpCookie("__RequestVerificationToken")); 

var mockHttpContext = new Mock<HttpContextBase>(); 
mockHttpContext.Setup(m => m.Request.Cookies).Returns(cookies); 

MOQ

사용