Verwenden Sie Moq, um HttpContext in ASP.NET MVC zu simulieren
Beim Testen von ASP.NET MVC-Controllern ist das Verspotten des HttpContext von entscheidender Bedeutung, um das Verhalten Ihres Codes zu isolieren. In diesem Artikel wird gezeigt, wie dies mithilfe des beliebten Mocking-Frameworks Moq erreicht werden kann.
Angenommen, Sie müssen den HttpContext in einer Testmethode verspotten:
<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>
Im obigen Code wird beim Versuch, controller.HttpContext
festzulegen, ein Fehler auftreten, da es sich um eine schreibgeschützte Eigenschaft handelt. Dieses Problem kann jedoch mithilfe des veränderlichen ControllerContext
-Attributs gelöst werden:
<code>controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);</code>
HttpContext kann effektiv simuliert werden, indem das ControllerContext
-Attribut festgelegt wird. Weitere Informationen und Beispiele zum Verspotten von RequestContext und HttpContext finden Sie in den folgenden Ressourcen:
Das obige ist der detaillierte Inhalt vonWie kann man HttpContext in ASP.NET MVC-Komponententests mithilfe von Moq effektiv verspotten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!