Spring Cloud Contract 1.0.0.RELEASE 版本已發佈

發佈 | Marcin Grzejszczak | 2016 年 9 月 23 日 | ...

我謹代表團隊宣布 Spring Cloud Contract 1.0.0.RELEASE 版本正式發佈。您可以從 Spring Release 或 Maven Central 下載。參考文件請見此處。發佈說明請見此處

Spring Cloud Contract 的用途為何? 在分散式系統中,您始終需要有信心將新功能推送到新的應用程式或服務中。 Spring Cloud Contract 專案為 Spring 應用程式中的 Consumer Driven Contracts 和服務架構提供支援,涵蓋一系列撰寫測試、將其發佈為資產、斷言合約是否由生產者和消費者維護的選項,適用於 HTTP 和基於訊息的互動。

Spring Cloud Contract 由三個主要專案組成

概括來說

Spring Cloud Contract Verifier

它是一種工具,可以對基於 JVM 的應用程式進行 Consumer Driven Contract (CDC) 開發。它隨附 Contract Definition Language (DSL)。 合約定義用於產生以下資源

  • JSON stub 定義,供 WireMock 在消費者端進行整合測試時使用。(測試程式碼仍必須手動編寫,測試資料由 Spring Cloud Contract Verifier 產生)。
  • 如果您正在使用訊息路由。 我們正在與 Spring Integration、Spring Cloud Stream 和 Apache Camel 整合。 但是,如果您願意,可以設定自己的整合
  • 驗收測試 (以 JUnit 或 Spock 形式),用於驗證 API 的伺服器端實作是否符合合約 (生產者測試)。 測試由 Spring Cloud Contract Verifier 產生。

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

Spring Cloud Contract WireMock

讓您可以使用 WireMock 搭配不同的伺服器,方法是使用嵌入在 Spring Boot 應用程式中的「環境」伺服器。 有關更多詳細資訊,請查看範例

如果您有一個使用 Tomcat 作為嵌入式伺服器的 Spring Boot 應用程式(例如 spring-boot-starter-web 的預設設定),那麼您可以簡單地將 spring-cloud-contract-wiremock 新增到您的類別路徑,並新增 @AutoConfigureWireMock,以便在您的測試中使用 Wiremock。 Wiremock 以 stub 伺服器的形式執行,您可以使用 Java API 或透過靜態 JSON 宣告來註冊 stub 行為,作為測試的一部分

Spring Cloud Contract RestDocs

Spring RestDocs 可用於使用 Spring MockMvc 或 RestEasy 為 HTTP API 產生文件(例如,以 asciidoctor 格式)。 在為您的 API 產生文件的同時,您也可以透過使用 Spring Cloud Contract WireMock 來產生 WireMock stub。 只需編寫您一般的 RestDocs 測試案例,並使用 @AutoConfigureRestDocs 以在 restdocs 輸出目錄中自動產生 stub

與往常一樣,您可以在 GitHubStack OverflowGitterTwitter 上與我們保持聯繫。

取得 Spring 電子報

與 Spring 電子報保持聯繫

訂閱

搶先一步

VMware 提供訓練和認證,以加速您的進展。

了解更多

取得支援

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

了解更多

即將舉行的活動

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

查看全部