[英]Jersey Unit Test: in memory container vs grizzly
我正試圖在澤西島進行單元測試。
不依賴於Jersey的類可以使用標准JUnit進行單元測試。 這個還可以。
但是還有Jersey(或者,我應該說是JAX-RS?)依賴類。 為了測試這些(注釋的正確性,序列化,狀態代碼等),Jersey提供了包含基礎JerseyTest
類的“測試框架”。
這也很好,也可以理解。
然而,官方文檔指定了幾種類型的受支持容器,其中可以執行JerseyTest
子類。
看起來這些容器可以分為兩種類型:
從我目前的(新手)角度來看,所有類型#1容器都提供相同的功能。 因此,讓我們把Grizzly作為#1代表。
現在,很明顯內存容器(根本不是真正的容器)比Grizzly快。 因此,我想使用這個容器來測試Jersey依賴類。 但官方文件中的這一陳述讓我感到困惑:
此容器不支持servlet和其他容器相關的功能,但它是簡單單元測試的完美選擇。
我試圖谷歌比較內存容器與Grizzly,但沒有找到任何明確的比較。 我也讀過這個技術性很強的帖子 ,但內存容器的缺點仍然不明確。
在這方面,我有兩個問題:
謝謝
什么是“servlet和其他容器依賴功能”(不需要全面的列表,只是一般描述)?
假設您需要在資源中使用HttpServletRequest
, ServletContext
等。 或者,如果您正在使用影響Jersey應用程序的serlvet過濾器或偵聽器。 這些是servlet功能。
其他“容器功能”僅表示您在生產中使用的特定於該容器的任何其他功能。 例如,使用Grizzly,您可以注入Grizzly特定的Request
對象。
如果我選擇內存容器,那么我是否可以遇到通過測試的代碼情況,但是在生產中失敗(我會在生產中使用Tomcat,如果這很重要)?
主要是如果你使用上面提到的項目。
請參閱需要servlet環境的示例 。 這里有一個Servlet過濾器用於安全性。 因此需要在測試中配置過濾器。 另一個需要HttpServletRequest的例子
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.