Maison >développement back-end >C++ >Comment simuler efficacement HttpContext dans les tests unitaires ASP.NET MVC à l'aide de 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>
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>
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!