簡體   English   中英

單元測試REST API

[英]Unit Testing REST API

我在單元測試和模擬方面有一些經驗。 以我有限的經驗,我將使用兩者來測試服務層,例如,模擬(存根?)數據庫以消除依賴關系,並專注於對業務邏輯進行單元測試。

現在,我正在創建將使用RESTful Web服務的包裝API實現。 發回給我的json結果結構不可用,例如:Twitter。 我只是在構建客戶端以與其API交互。 我不確定如何對json結果進行單元測試。 現在,我只是使用靜態json結構來模擬http請求的結果。 這可以確保將json反序列化到我的pojos中是正確的,但是我擔心API的更改。 如果api結構發生變化怎么辦? 如果api當前今天返回“ title”,明天返回“ groovy_title”怎么辦? 我的單元測試無法解決這個問題。

從我的理解來看-單元測試應該是快速的。 以前我會模擬數據庫,現在我模擬http,但是我實際上應該使用具體的http實現,以便立即通知我有關api的重大更改嗎? 還是有更好的方法來處理這種情況?

我將繼續做您正在做的事情,並模擬您的代碼與外部API之間的接口。 如您所指出的,這將不會檢測到外部API中的更改。

您可以編寫集成測試,然后將其實際發送到外部服務器以測試API更改。 我懷疑您已經將進行交互的代碼分離到了自己的服務器/模塊中,因此您可以從字面上ping外部API,而不會受到應用程序中多個抽象層的阻礙。

注意,您可以在不使用應用程序代碼的情況下構建這些測試。 即只是wget或curl,然后對結果進行一些分析...

與此相關的問題很多。 從我的頭頂上掉下來:

您需要網絡連接
慢點
外部服務可能會暫時關閉-即故障可能意味着不同的事情。
等等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM