2011-10-01 42 views
0

我正在使用glassfish應用程序服務器。我需要編寫一些servlet的junit。我的問題是如何創建模擬容器,模擬請求和響應與核心Java庫或我需要在這裏使用某種工具?任何指針會有幫助嗎?爲servlet編寫JUNIT?

回答

4

由於hvgotcodes筆記,這是完全有可能編寫servlet的JUnit測試。但我建議你在這樣做之前仔細思考。

Servlet是HTTP請求偵聽器;他們在一個servlet容器中運行,響應任何來自他們的HTTP請求,並將結果打包回發送。我認爲這就是他們應該做的。真正的工作最好留給servlet可以編組的其他對象。這些可以是POJO,很可能是基於接口的,這將意味着更容易的測試,而不必啓動一個servlet容器來運行測試。如果您決定在非基於Web的設置中需要相同的功能,則很容易,因爲它已經駐留在Servlet以外的對象中。

我會重新考慮設計。把許多功能放在servlet中可能是一個不好的決定。 http://community.jboss.org/wiki/Arquillian -

+0

感謝duffymo。但實際上,我只是想知道HTTPunit等servlet測試框架如何創建模擬容器。關於它的一些想法? –

3

1)它不是一個壞主意,抽象的應用程序邏輯到由該servlet調用,這樣你就可以測試你的業務邏輯從你的servlet交互單獨的對象。

2)Spring提供了一些mock classes for tests,包括請求和響應。即使你不使用Spring,你仍然可以使用這些類來進行測試。

0

你可以從JBoss的有趣發現的Arquillian。

測試容器內!

的Arquillian提供了一種簡單的機制來測試遠程或嵌入容器內或通過作爲容器的一個客戶端進行交互的應用程序代碼。

使命

中的Arquillian項目的使命是提供一個簡單的測試工具,開發人員可以用它來產生了廣泛的爲他們的Java應用程序的集成測試(最有可能的企業應用程序)。測試用例可以在容器內執行,與被測代碼一起部署,或者通過與容器協調,充當部署代碼的客戶端。