利用HttpContext.Current.Session 的單元測試程式碼
問題:
問題:問題:
問為了對Web服務進行單元測試,我在設定時遇到空引用異常HttpContext.Current.Session 值。儘管使用 SimpleWorkerRequest 建立上下文,HttpContext.Current.Session 仍然為空。如何在單元測試中初始化目前會話?
答案:
要模擬 HttpContext 及其會話對象,您可以採用以下兩種方法之一:
new HttpStaticObjectsCollection(), 10, true, HttpCookieMode.AutoDetect, SessionStateMode.InProc, false);使用反射:
BindingFlags.NonPublic | BindingFlags.Instance, null, CallingConventions.Standard, new[] { typeof(HttpSessionStateContainer) }, null) .Invoke(new object[] { sessionContainer });
<p>public static HttpContext FakeHttpContext()<g> var stringWriter = new StringWriter();<br> var httpResponse = new HttpResponse(stringWriter);</g></p> var httpContext = new HttpContext(httpRequest, httpResponse); = new HttpSessionStateContainer("id", new SessionStateItemCollection(),
httpContext .Items["AspSession"] = typeof(HttpSessionState).GetConstructor(}
以上是如何模擬 HttpContext.Current.Session 進行單元測試?的詳細內容。更多資訊請關注PHP中文網其他相關文章!