W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
WireMock允許您使用“ https” URL協(xié)議對(duì)“安全”服務(wù)器進(jìn)行存根。如果您的應(yīng)用程序希望在集成測(cè)試中聯(lián)系該存根服務(wù)器,它將發(fā)現(xiàn)SSL證書(shū)無(wú)效(自安裝證書(shū)的常見(jiàn)問(wèn)題)。最好的選擇通常是將客戶端重新配置為使用“ http”。如果這不是一種選擇,則可以要求Spring配置忽略SSL驗(yàn)證錯(cuò)誤的HTTP客戶端(當(dāng)然,僅對(duì)測(cè)試而言如此)。
為了使此工作最小,您需要在應(yīng)用中使用Spring Boot RestTemplateBuilder
,如以下示例所示:
@Bean public RestTemplate restTemplate(RestTemplateBuilder builder) { return builder.build(); }
您需要RestTemplateBuilder
,因?yàn)闃?gòu)建器是通過(guò)回調(diào)傳遞的,以對(duì)其進(jìn)行初始化,因此此時(shí)可以在客戶端中設(shè)置SSL驗(yàn)證。如果您使用的是@AutoConfigureWireMock
批注或存根運(yùn)行程序,則這會(huì)在測(cè)試中自動(dòng)發(fā)生。如果使用JUnit @Rule
方法,則還需要添加@AutoConfigureHttpClient
批注,如以下示例所示:
@RunWith(SpringRunner.class) @SpringBootTest("app.baseUrl=https://localhost:6443") @AutoConfigureHttpClient public class WiremockHttpsServerApplicationTests { @ClassRule public static WireMockClassRule wiremock = new WireMockClassRule( WireMockSpring.options().httpsPort(6443)); ... }
如果您使用的是spring-boot-starter-test
,則將Apache HTTP客戶端放在類(lèi)路徑上,并由RestTemplateBuilder
選擇它,并將其配置為忽略SSL錯(cuò)誤。如果使用默認(rèn)的java.net
客戶端,則不需要注釋?zhuān)ǖ粫?huì)造成任何危害)。
當(dāng)前不支持其他客戶端,但可能會(huì)在將來(lái)的版本中添加。
要禁用自定義RestTemplateBuilder
,請(qǐng)將wiremock.rest-template-ssl-enabled
屬性設(shè)置為false
。
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)系方式:
更多建議: