2010-08-25 44 views
9

最完整的模擬框架我在尋找儘可能全面在我的應用程序進行模擬更換包裝的ASP.NET HttpContext的。全面的模擬替換可能會大大增加我的ASP.NET Web應用程序的可測試性,而不必將每個應用程序遷移到更多可測試的框架(如MVC)。什麼是HttpContext的

一些我最感興趣的是在HttpContext包裝和模擬框架眼看功能包括:

  • 序列化會話存儲(例如,.Session)。
  • 序列化的應用程序範圍的存儲(例如,.Application)。
  • 每請求項目存儲(例如,.Items)。
  • HttpRequest數據,如引用,請求Uri,服務器變量,發佈數據等。
  • HttpResponse數據,如狀態碼和內容。
  • 本地文件分辨率(例如Server.MapPath
  • VirtualPathUtility用於應用程序相關URL路徑解析,它依賴於ASP.NET運行時。
  • 身份和主要(例如,.User)用於驗證認證/授權規則。
  • AllErrors集合在HttpModule S和Global.asax測試誤差的分辨率。

我認爲寫我自己的接口,包裝和模擬;但是,我相信這樣的事情一定已經存在。模擬框架的多樣性對於第一次購買者來說有點不可思議。

什麼是最全面的HttpContext包裝和模仿,你會建議?

回答

2

我的公司在爲所有http objcets(IHttpRequest,IHttpResponse等)創建接口方面做得很好。

它有點重複,但基本上需要接口 上的所有方法和屬性,然後爲每個接口創建一個具體類型,將實型指定爲構造函數參數,並將所有方法和屬性傳遞給實際對象。

然後,你可以輕鬆地使用RhinoMocks或任何東西測試一切。

+0

這似乎是你是最正確的。 .NET 3。5介紹了'HttpContextBase',但在此之前,模擬只能通過自定義包裝進行。我認爲,爲HttpContext設計一個精心設計的模擬包裝來促進改進的自動化功能測試將是有益的。我會保持我的眼睛。 – kbrimington 2011-02-01 13:51:24

1

退房的moq框架。這是MVC團隊使用的嘲諷框架,許多人(包括我自己)都認爲它有最低的進入門檻。還請檢查MvcContrib項目中的嘲笑幫手。

+0

問題不是ASP.NET MVC,而是ASP.NET Web窗體。對於MVC,嘲笑HTTP上下文很容易。 :) – bzlm 2010-08-26 21:25:03

+0

糟糕 - 我站好了。 – 2010-08-26 21:29:48

+0

沒有必要在這裏倒票。我會看看moq。在傳統的ASP.NET中使用MvcContrib類是否可行? – kbrimington 2010-08-26 21:37:53

相關問題