Maison > développement back-end > C++ > Comment simuler efficacement HttpContext dans les tests unitaires ASP.NET MVC à l'aide de Moq ?

Comment simuler efficacement HttpContext dans les tests unitaires ASP.NET MVC à l'aide de Moq ?

Patricia Arquette
Libérer: 2025-01-11 20:41:42
original
212 Les gens l'ont consulté

How to Effectively Mock HttpContext in ASP.NET MVC Unit Tests Using Moq?

Utilisez Moq pour simuler HttpContext dans ASP.NET MVC

Lors du test des contrôleurs ASP.NET MVC, se moquer du HttpContext est essentiel pour isoler le comportement de votre code. Cet article montrera comment y parvenir en utilisant le framework de moquerie populaire Moq.

Supposons que vous deviez vous moquer du HttpContext dans une méthode de test :

<code>[TestMethod]
public void Home_Message_Display_Unknown_User_when_coockie_does_not_exist()
{
    var context = new Mock<HttpContextBase>();
    var request = new Mock<HttpRequestBase>();
    context
        .Setup(c => c.Request)
        .Returns(request.Object);
    HomeController controller = new HomeController();

    controller.HttpContext = context.Object; // 此处出错
}</code>
Copier après la connexion

Dans le code ci-dessus, vous rencontrerez une erreur en essayant de définir controller.HttpContext car il s'agit d'une propriété en lecture seule. Cependant, ce problème peut être résolu en utilisant l'attribut mutable ControllerContext :

<code>controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);</code>
Copier après la connexion

HttpContext peut être efficacement simulé en définissant l'attribut ControllerContext. Pour plus d'informations et d'exemples sur la simulation de RequestContext et HttpContext, veuillez vous référer aux ressources suivantes :

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!

source:php.cn
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