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