Heim >Backend-Entwicklung >C++ >Wie verspotte ich HttpContext in ASP.NET MVC mit Moq?

Wie verspotte ich HttpContext in ASP.NET MVC mit Moq?

Linda Hamilton
Linda HamiltonOriginal
2025-01-11 20:31:44129Durchsuche

How to Mock HttpContext in ASP.NET MVC Using 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn