Heim >Backend-Entwicklung >C++ >Wie verspotte ich HttpContext.Current in einer Testinit-Methode?
Da HttpContextBase von ControllerContext und HttpContext von der Basisklassenbibliothek erbt, kommt es beim Verspotten von HttpContext.Current in der Init-Methode zu Vererbungskonflikten.
Alternativen mit HttpContext
Glücklicherweise können wir den HttpContext direkt verspotten, was ausreicht, um IPrincipal (Benutzer) und IIdentity zu bedienen:
<code class="language-csharp">HttpContext.Current = new HttpContext( new HttpRequest("", "http://tempuri.org", ""), new HttpResponse(new StringWriter()) ); // 用户已登录 HttpContext.Current.User = new GenericPrincipal( new GenericIdentity("username"), new string[0] ); // 用户已注销 HttpContext.Current.User = new GenericPrincipal( new GenericIdentity(String.Empty), new string[0] );</code>
Dieser Code stellt sicher, dass der HttpContext in Ihrem Controller und in allen in der Init-Methode aufgerufenen Bibliotheken verspottet wird.
Das obige ist der detaillierte Inhalt vonWie verspotte ich HttpContext.Current in einer Testinit-Methode?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!