開發代理與單元測試的比較

Dev Proxy 和單元測試在你的測試策略中扮演不同的角色。 雖然兩者都很有價值,但它們以根本不同的方式來測試你的申請。 將它們一起使用,能讓你全面掌握應用程式的行為。

不同的測試方法

單元測試 用於測試具有模擬相依性的獨立程式碼片段。 當你為呼叫 API 的程式碼撰寫單元測試時,通常會模擬 HTTP 用戶端以回傳預先定義的回應。 這種方法可以讓你驗證程式碼是否正確處理特定情境。

Dev Proxy 會用模擬 API 行為測試你正在執行的應用程式。 Dev Proxy 不是模擬程式碼,而是攔截實際的 HTTP 請求,並模擬真實世界的狀況,如錯誤、限速和延遲。 這種方法會測試整個應用程式,包括程式碼與 API 之間的所有層次。

使用每項功能的時機

想用 單元測試 時可以:

  • 測試特定函數行為與邊緣案例
  • 單獨驗證業務邏輯
  • 開發過程中獲得快速回饋
  • 實現高程式碼覆蓋率
  • 測試特定錯誤處理路徑

想用 Dev Proxy 時:

  • 端到端測試你的應用程式
  • 模擬難以重現的狀況,例如限速或網路問題
  • 測試所有層級的真實重試邏輯與錯誤處理
  • 在負載狀態下運行您的應用程式,並包含隨機故障測試
  • 驗證韌性而不更改程式碼

開發代理的優勢

Dev Proxy 相較於傳統 mock 方法提供多項優勢:

  • 不需要修改程式碼。 你不需要修改你的應用程式來使用 Dev Proxy。 它在網路層級運作,能透明攔截 HTTP 請求。
  • 可以搭配任何 HTTP 函式庫使用。 有些 HTTP 函式庫以難以模擬而聞名。 使用 Dev Proxy 時,不管你用哪個函式庫——RestSharp、HttpClient、Axios 或其他軟體。 開發代理伺服器會攔截所有 HTTP 流量,不論是哪個函式庫。
  • 測試真正的應用。 模擬 HTTP 用戶端的單元測試不會測試實際的重試邏輯、連線處理或逾時行為。 Dev Proxy 會測試你真實應用程式及其所有相依性。
  • 更容易理解失敗。 當你能在執行中的應用程式中按需觸發失敗時,就更容易理解並除錯應用程式如何處理這些失敗。
  • 模擬複雜條件。 開發代理(Dev Proxy)可以模擬使用模擬工具難以重現的一些狀況,例如負載時的隨機故障、逐漸降速或間歇性的網路問題。

互補的測試策略

最有效的方法是結合兩種測試方法:

  • 使用單元測試來測試邏輯。 撰寫單元測試來驗證你的商業邏輯、資料轉換以及特定的錯誤處理程式碼路徑。
  • 使用 Dev Proxy 來提升韌性。 使用 Dev Proxy 來驗證你的應用程式是否正確處理真實世界的 API 條件——限速、錯誤和反應緩慢。
  • 在 CI/CD 中同時使用兩者。 執行單元測試,讓每個提交都能快速獲得回饋。 在整合測試中使用 Dev Proxy,在部署前發現韌性問題。

單元測試會告訴你程式碼是否正確。 Dev Proxy 告訴你你的應用程式是否有韌性。 兩者您都需要。

下一步