Utilisez Moq pour simuler HttpContext dans ASP.NET MVC
Lorsque vous essayez de simuler HttpContext lors d'un test, vous pouvez rencontrer une erreur indiquant que la propriété HttpContext est en lecture seule. Cet article fournira une solution à ce problème et expliquera comment utiliser Moq pour se moquer du HttpContext et de ses dépendances.
Surmonter les problèmes de lecture seule
Dans la classe HomeController, la propriété HttpContext est bien en lecture seule. Cependant, il est possible de définir la propriété ControllerContext, qui contient HttpContext comme sous-propriété.
<code>controller.ControllerContext = new ControllerContext( context.Object, new RouteData(), controller );</code>
Exemple
Le code suivant montre comment définir un HttpContext simulé à l'aide de Moq :
<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.ControllerContext = new ControllerContext( context.Object, new RouteData(), controller ); ... }</httprequestbase></httpcontextbase></code>
Plus de ressources
Pour plus de détails sur la simulation de RequestContext et HttpContext, veuillez consulter les 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!