Spring Cloud Contract4.1.4

Spring Cloud Contract 是一個綜合專案,提供解決方案以協助使用者成功實作消費者驅動契約方法。目前 Spring Cloud Contract 由 Spring Cloud Contract Verifier 專案組成。

Spring Cloud Contract Verifier 是一個工具,可針對 JVM 基礎的應用程式啟用消費者驅動契約 (CDC) 開發。它隨附以 Groovy 或 YAML 撰寫的契約定義語言 (DSL)。契約定義用於產生以下資源

  • 預設的 JSON Stub 定義,供 WireMock (HTTP 伺服器 Stub) 在用戶端程式碼 (用戶端測試) 上執行整合測試時使用。測試程式碼仍然必須手動編寫,測試資料由 Spring Cloud Contract Verifier 產生。

  • 如果您正在使用的話,則為訊息傳遞路由。我們正在與 Spring Integration、Spring Cloud Stream 和 Apache Camel 整合。但是,如果您願意,可以設定自己的整合。

  • 用於驗證 API 的伺服器端實作是否符合契約的驗收測試 (預設為 JUnit 或 Spock) (伺服器測試)。完整的測試由 Spring Cloud Contract Verifier 產生。

Spring Cloud Contract Verifier 將 TDD 提升到軟體架構層級。

若要查看 Spring Cloud Contract 如何支援其他語言,請查看這篇部落格文章

功能

當嘗試測試與其他服務通訊的應用程式時,我們可以執行以下兩件事之一

  • 部署所有微服務並執行端對端測試

  • 在單元/整合測試中模擬其他微服務

兩者都有其優點,但也存在許多缺點。讓我們專注於後者。部署所有微服務並執行端對端測試

優點

  • 模擬生產環境

  • 測試服務之間的真實通訊

缺點

  • 為了測試一個微服務,我們必須部署 6 個微服務、幾個資料庫等。

  • 將在其中進行測試的環境將鎖定為單一測試套件 (即,在此期間沒有其他人能夠執行測試)。

  • 執行時間長

  • 非常延遲的回饋

  • 極難除錯

在單元/整合測試中模擬其他微服務

優點

  • 非常快速的回饋

  • 沒有基礎架構需求

缺點

  • 服務的實作者建立 Stub,因此它們可能與現實無關

  • 您可能會在通過測試的情況下發佈到生產環境,但在生產環境中卻失敗

為了解決上述問題,建立了 Spring Cloud Contract Verifier 和 Stub Runner。它們的主要想法是為您提供非常快速的回饋,而無需設定整個微服務世界。

Spring Cloud Contract Verifier 功能

  • 確保 HTTP/訊息 Stub (在開發用戶端時使用) 完全按照實際伺服器端實作將執行的操作執行

  • 推廣驗收測試驅動開發方法和微服務架構樣式

  • 提供一種發佈契約變更的方法,這些變更在通訊的雙方立即可見

  • 產生伺服器端使用的樣板測試程式碼

Spring Initializr

快速開始您的專案

搶先一步

VMware 提供培訓和認證,以加速您的進度。

深入瞭解

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

深入瞭解

即將舉辦的活動

查看 Spring 社群中所有即將舉辦的活動。

檢視全部