Maison > développement back-end > C++ > Comment se moquer de HttpContext.Current dans une méthode de test d'initialisation ?

Comment se moquer de HttpContext.Current dans une méthode de test d'initialisation ?

Barbara Streisand
Libérer: 2025-01-17 02:51:09
original
854 Les gens l'ont consulté

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

Mock HttpContext.Current dans la méthode d'initialisation du test

Puisque HttpContextBase hérite de ControllerContext et que HttpContext hérite de la bibliothèque de classes de base, se moquer de HttpContext.Current dans la méthode Init rencontrera des conflits d'héritage.

Alternatives utilisant HttpContext

Heureusement, on peut se moquer directement du HttpContext, ce qui suffit pour faire fonctionner IPrincipal (User) et IIdentity :

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]
);
Copier après la connexion

Ce code garantit que le HttpContext est simulé dans votre contrôleur et dans toutes les bibliothèques appelées dans la méthode Init.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal