Heim > Backend-Entwicklung > C++ > Wie verspotte ich HttpContext.Current in einer Testinit-Methode?

Wie verspotte ich HttpContext.Current in einer Testinit-Methode?

Barbara Streisand
Freigeben: 2025-01-17 02:51:09
Original
769 Leute haben es durchsucht

How to Mock HttpContext.Current in a Test Init Method?

Mock HttpContext.Current in der Testinitialisierungsmethode

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage