2008-08-24 10 views

Antwort

1

In der Vergangenheit vor dem Wechsel zu ASP.NET MVC, habe ich this library Phil Haack für Unit Testing alles erstellt, die die HttpApplication und HttpContext verwendet. Es wurde ein Duck Typing library verwendet.

Leider war dies der beste Weg, es zu tun. ASP.NET wurde nicht leicht testbar gemacht. Als sie an ASP.NET MVC arbeiteten, bestand eines der Ziele darin, diese Kopfschmerzen loszuwerden, indem das Framework testbarer gemacht wurde.

2

Im Wesentlichen müssen Sie die Abhängigkeit des HttpModuls von HttpApplication und HttpContext entfernen und sie durch eine Schnittstelle ersetzen. Sie könnten Ihre eigenen IHttpApplication und IHttpContext (zusammen mit IHttpResonse, IHttpRequest, etc) oder verwenden Sie die von @Dale Ragan oder verwenden Sie die glänzenden neuen in System.Web.Abstractions, die mit den asp.net mvc-Vorschauen gebündelt sind.

+0

Können Sie mich auf @Dale Ragans Artikel verweisen. PS: Ich habe keinen Zugriff auf Twitter – chugh97

+0

Ich beziehe mich tatsächlich auf die Antwort direkt darunter :) – Mike

0

Sie können ein Framework für die Isolierung (Mocking) verwenden. Ich kenne zwei Tools, mit denen Sie alle .NET-Objekte - Typemock Isolator und Telerik JustMock fälschen/vortäuschen können. Ich denke, dass Sie auch Moles verwenden können.

Mit alldem können Sie ein beliebiges .NET-Objektereignis fälschen, wenn es keine Schnittstelle implementiert oder sogar einen öffentlichen c'tor hat.