W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
如果合同之間的基類不同,則可以告訴Spring Cloud Contract插件自動(dòng)生成的測(cè)試應(yīng)擴(kuò)展哪個(gè)類。您有兩種選擇:
packageWithBaseClasses
baseClassMappings
提供顯式映射
按照慣例
約定是這樣的:如果您在src/test/resources/contract/foo/bar/baz/
下?lián)碛泻贤⑶覍?code class="literal" i="3811">packageWithBaseClasses屬性的值設(shè)置為com.example.base
,則Spring Cloud Contract驗(yàn)證者會(huì)假設(shè)存在一個(gè)BarBazBase
類(位于com.example.base
包中)。
換句話說(shuō),系統(tǒng)將獲取包的最后兩個(gè)部分(如果存在的話),并形成一個(gè)帶有Base
后綴的類。此規(guī)則優(yōu)先于baseClassForTests。這是一個(gè)在contracts
閉包中如何工作的示例:
<plugin> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-contract-maven-plugin</artifactId> <configuration> <packageWithBaseClasses>hello</packageWithBaseClasses> </configuration> </plugin>
通過(guò)映射
您可以將合同包的正則表達(dá)式手動(dòng)映射到匹配合同的基類的完全限定名稱。您必須提供一個(gè)名為baseClassMappings
的列表,該列表由baseClassMapping
對(duì)象組成,這些對(duì)象采用從contractPackageRegex
到baseClassFQN
的映射。
考慮以下示例:
<plugin> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-contract-maven-plugin</artifactId> <configuration> <baseClassForTests>com.example.FooBase</baseClassForTests> <baseClassMappings> <baseClassMapping> <contractPackageRegex>.*com.*</contractPackageRegex> <baseClassFQN>com.example.TestBase</baseClassFQN> </baseClassMapping> </baseClassMappings> </configuration> </plugin>
假設(shè)您在以下兩個(gè)位置擁有合同:* src/test/resources/contract/com/
* src/test/resources/contract/foo/
通過(guò)提供baseClassForTests
,我們可以進(jìn)行后備,以防映射未成功。(您也可以提供packageWithBaseClasses
作為后備。)這樣,從src/test/resources/contract/com/
合約生成的測(cè)試擴(kuò)展了com.example.ComBase
,而其余測(cè)試擴(kuò)展了com.example.FooBase
。
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)系方式:
更多建議: