W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
這個非常簡短的導覽使用Spring Cloud Contract來完成:
您可以在這里找到更長的行程 。
要開始使用Spring Cloud Contract,請將具有REST/
消息合同(以Groovy DSL或YAML表示)的文件添加到由contractsDslDir
屬性設置的合同目錄中。默認情況下為$rootDir/src/test/resources/contracts
。
然后將Spring Cloud Contract Verifier依賴項和插件添加到您的構建文件中,如以下示例所示:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-contract-verifier</artifactId> <scope>test</scope> </dependency>
以下清單顯示了如何添加插件,該插件應放在文件的build / plugins部分中:
<plugin> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-contract-maven-plugin</artifactId> <version>${spring-cloud-contract.version}</version> <extensions>true</extensions> </plugin>
運行./mvnw clean install
會自動生成測試,以驗證應用程序是否符合添加的合同。默認情況下,測試在org.springframework.cloud.contract.verifier.tests.
下生成。
由于尚不存在合同描述的功能的實現(xiàn),因此測試失敗。
要使它們通過,您必須添加處理HTTP請求或消息的正確實現(xiàn)。另外,您必須為自動生成的測試添加正確的基礎測試類。該類由所有自動生成的測試擴展,并且應包含運行它們所需的所有設置(例如RestAssuredMockMvc
控制器設置或消息傳遞測試設置)。
一旦實現(xiàn)和測試基類就位,測試就會通過,并且將應用程序和存根構件都構建并安裝在本地Maven存儲庫中。現(xiàn)在可以合并更改,并且可以在在線存儲庫中發(fā)布應用程序和存根工件。
Spring Cloud Contract Stub Runner
可以用于集成測試中,以獲取模擬實際服務的運行中WireMock實例或消息傳遞路由。
為此,請將依賴項添加到Spring Cloud Contract Stub Runner
中,如以下示例所示:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-contract-stub-runner</artifactId> <scope>test</scope> </dependency>
您可以通過以下兩種方式之一在Maven存儲庫中安裝生產(chǎn)者端存根:
通過檢出生產(chǎn)者端存儲庫并添加合同并通過運行以下命令來生成存根:
$ cd local-http-server-repo
$ ./mvnw clean install -DskipTests
由于生產(chǎn)者方合同實施尚未到位,因此跳過了測試,因此自動生成的合同測試失敗。
通過從遠程存儲庫獲取已經(jīng)存在的生產(chǎn)者服務存根。為此,請將存根工件ID和工件存儲庫URL作為Spring Cloud Contract
Stub Runner
屬性傳遞,如以下示例所示:
stubrunner: ids: 'com.example:http-server-dsl:+:stubs:8080' repositoryRoot: https://repo.spring.io/libs-snapshot
現(xiàn)在,您可以使用@AutoConfigureStubRunner
注釋測試類。在注釋中,為Spring Cloud Contract Stub Runner
提供group-id
和artifact-id
值,以為您運行協(xié)作者的存根,如以下示例所示:
@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment=WebEnvironment.NONE) @AutoConfigureStubRunner(ids = {"com.example:http-server-dsl:+:stubs:6565"}, stubsMode = StubRunnerProperties.StubsMode.LOCAL) public class LoanApplicationServiceTests {
從在線存儲庫下載存根時,請使用
REMOTE
stubsMode
,而對于脫機工作,請使用LOCAL
。
現(xiàn)在,在集成測試中,您可以接收預期由協(xié)作服務發(fā)出的HTTP響應或消息的存根版本。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: