Maison > développement back-end > C++ > Comment se moquer de HttpContext dans ASP.NET MVC avec Moq ?

Comment se moquer de HttpContext dans ASP.NET MVC avec Moq ?

DDD
Libérer: 2025-01-11 20:37:42
original
252 Les gens l'ont consulté

How to Mock HttpContext in ASP.NET MVC with Moq?

Utiliser Moq pour simuler HttpContext dans les applications ASP.NET MVC

La moquerie HttpContext dans les tests ASP.NET MVC utilisant Moq nécessite une approche légèrement différente. Puisque la propriété HttpContext de votre contrôleur est en lecture seule, vous devez travailler avec son parent, ControllerContext. En définissant ControllerContext, vous vous assurez que le contexte simulé est correctement transmis à la méthode Initialize.

Voici comment modifier votre méthode de test :

<code class="language-csharp">[TestMethod]
public void Home_Message_Display_Unknown_User_when_cookie_does_not_exist()
{
    var mockHttpContext = new Mock<HttpContextBase>();
    var mockHttpRequest = new Mock<HttpRequestBase>();
    mockHttpContext
        .Setup(c => c.Request)
        .Returns(mockHttpRequest.Object);

    var controller = new HomeController();
    // Set the ControllerContext, not the HttpContext directly
    controller.ControllerContext = new ControllerContext(mockHttpContext.Object, new RouteData(), controller);
    // ... rest of your test code
}</code>
Copier après la connexion

Cette méthode contourne la limitation en lecture seule de HttpContext et permet une moquerie efficace. Pour des conseils plus détaillés sur la moquerie HttpContext et RequestContext avec Moq, consultez la ressource suivante :

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal