Heim > Backend-Entwicklung > C++ > Wie kann man HttpContext in ASP.NET MVC-Komponententests mithilfe von Moq effektiv verspotten?

Wie kann man HttpContext in ASP.NET MVC-Komponententests mithilfe von Moq effektiv verspotten?

Patricia Arquette
Freigeben: 2025-01-11 20:41:42
Original
178 Leute haben es durchsucht

How to Effectively Mock HttpContext in ASP.NET MVC Unit Tests Using Moq?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage