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>
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!