搶先一步
VMware 提供培訓和認證,以加速您的進度。
深入瞭解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 (在開發用戶端時使用) 完全按照實際伺服器端實作將執行的操作執行
推廣驗收測試驅動開發方法和微服務架構樣式
提供一種發佈契約變更的方法,這些變更在通訊的雙方立即可見
產生伺服器端使用的樣板測試程式碼