Heim >Backend-Entwicklung >C++ >Wie verspotte ich HttpContext in ASP.NET MVC mit Moq?
Verwenden Sie Moq, um HttpContext in ASP.NET MVC zu simulieren
Wenn Sie beim Testen versuchen, HttpContext zu simulieren, kann es zu einer Fehlermeldung kommen, die darauf hinweist, dass die HttpContext-Eigenschaft schreibgeschützt ist. Dieser Artikel bietet eine Lösung für dieses Problem und erklärt, wie man Moq verwendet, um den HttpContext und seine Abhängigkeiten zu verspotten.
Überwindung von Nur-Lese-Problemen
In der HomeController-Klasse ist die HttpContext-Eigenschaft tatsächlich schreibgeschützt. Es ist jedoch möglich, die ControllerContext-Eigenschaft festzulegen, die HttpContext als Untereigenschaft enthält.
<code>controller.ControllerContext = new ControllerContext( context.Object, new RouteData(), controller );</code>
Beispiel
Der folgende Code zeigt, wie ein simulierter HttpContext mithilfe von Moq festgelegt wird:
<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>
Weitere Ressourcen
Weitere Informationen zum Verspotten von RequestContext und HttpContext finden Sie in den folgenden Ressourcen:
Das obige ist der detaillierte Inhalt vonWie verspotte ich HttpContext in ASP.NET MVC mit Moq?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!