2010-03-09 76 views
1

我正在使用MVP模式處理ASP.NET WebForm應用程序。對於每個Web窗體,都有一個Presenter類關聯來處理UI和業務邏輯。不過,由於在演示者中使用了會話值,因此在爲演示者編寫單元測試時遇到了問題。在執行單元測試期間不存在HTTP上下文(順便說一下,我使用nUnit),這使得爲演示者編寫單元測試是不可能的。ASP.NET Web測試演示者表單

任何人都可以解釋如何單元測試這些演示者?

感謝

+0

我知道這是一個有點老問題,但你能告訴我爲什麼你的主持人訪問Sessoin對象?我的意思是你可以傳遞來自視圖的Session值,你不需要依賴於HttpContext,因此不需要嘲笑。我問,因爲我是新來的這個東西。 – jim 2012-03-28 08:51:01

回答

1

您可以更改您的Presenter類以對HttpContextBase進行依賴。一旦完成,您可以提供模擬版本的HttpContext給您的演示者類進行測試。在生產中,您只需提供HttpContext.Current屬性。

1

嗯,我會建議另一種方法。 我認爲你的演示者不應該知道HttpContext,PageLifeCycle等,因爲你必須單獨測試它。因此,不要嘗試模擬IHttpContext,嘗試提取演示者中需要的值(不需要整個httpcontext對象,只需要來自會話,cookie等的一些值),並通過演示者構造函數注入演示者。現在你可以正確地測試它。

乾杯