2011-05-17 40 views
0

我目前正在嘗試在GWT應用程序中測試我的服務層(所有* Impl.java類)。那麼問題是,在代碼中,我有一個依賴項,其目標是由Httpsession提供的對象。實際上,我將一個User對象(當前登錄的用戶)存儲在httpSession中。單元測試GWT應用程序時,如何模擬容器提供的對象(例如HttpSession)?

爲了拿回來從HttpSession中(在* Impl.java類),我用這:

用戶的用戶= ServiceUtil.getUser(getThreadLocalRequest()的getSession()) ;

如何從我的單元測試代碼中嘲笑這個對象?

非常感謝,

回答

0

我建議你改變你的應用程序的結構,以便服務層不上這樣的事情取決於作爲會話(上下文無關),而是它需要的用戶對象的方法有些需要注入(通過參數或其他)。所以實際上你包含了一個非常簡單的表示層(或者你可以調用它),它處理諸如響應HTTP請求,登錄用戶和將用戶對象放入會話中並調用服務層方法等內容。

這樣你就可以在單元測試中模擬你的用戶對象,將它傳遞給你的服務層,不需要任何模擬框架。

+0

非常感謝您的回覆, 我會嘗試根據您的建議更改拱門...... – kaffein 2011-05-19 07:55:14

1

在JUnit測試情況下,你可以寫

HttpSession session = new MockHttpSession(); 

哪裏MockHttpSessionthis

你可以把你的用戶對象在本次會議,然後執行測試用例。

相關問題