2013-11-20 24 views
3

我正在爲使用Jersey的REST客戶端構建一些JUnit測試,因此我需要將數據的副本發送到服務器以在JUnit中運行一些測試。Jersey客戶端發送數據到字符串

目前我的客戶調用:

Invocation invocation = serviceWebTarget.request(MediaType.APPLICATION_JSON). 
         buildPut(Entity.json((QARecord) valuesList.get(0))); 
Response response = invocation.invoke(); 

在兩個電話之間的QARecord對象序列化到JSON和發送到服務器,但我不能找到一種方法來訪問它。 通過調試代碼,我發現在包含轉換的JSON文本的調用或響應中沒有變量。

如何將發送的數據轉換爲字符串或文件以供我的JUnit測試檢查發送的內容?

回答

0

據我瞭解,你想檢查什麼客戶端將作爲請求發送到服務器,我是對嗎? 如果是,你的單元測試看起來如何?

例如Jersey提供的JerseyTest類是測試客戶端代碼的基礎。

簡而言之,這樣的測試將運行特殊的testcontainer,它可以執行你的處理程序。 通過將其與Mockito /或自己創建自己的處理程序相結合,您可以驗證測試結束時(當客戶端收到響應時)它們作爲客戶端請求「捕獲」的內容。除此之外,它還可以讓您檢查客戶端代碼發送到服務器的方式,並通過模擬各種響應(成功或異常)來檢查客戶端的行爲。

如果您只想獲得客戶端真正發送給服務器的內容,您可以編寫澤西客戶端過濾器並從中獲取請求主體。 Filters and Interceptors

相關問題