javascript
Spring Boot的TestRestTemplate使用
文章目錄
- 添加maven依賴
- TestRestTemplate VS RestTemplate
- 使用Basic Auth Credentials
- 使用HttpClientOption
- 使用RestTemplateBuilder
Spring Boot的TestRestTemplate使用
TestRestTemplate和RestTemplate很類似,不過它是專門用在測試環(huán)境中的,本文我們將會講述TestRestTemplate的一些常用方法。
如果我們在測試環(huán)境中使用@SpringBootTest,則可以直接使用TestRestTemplate。
添加maven依賴
要使用TestRestTemplate,我們需要首先添加如下的maven依賴:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-test</artifactId> </dependency>TestRestTemplate VS RestTemplate
TestRestTemplate和RestTemplate的功能很類似,都可以用來和HTTP API進行交互。實際上TestRestTemplate就是RestTemplate的封裝。 我們看下TestRestTemplate的代碼:
public class TestRestTemplate {private final RestTemplateBuilder builder;private final HttpClientOption[] httpClientOptions;private final RestTemplate restTemplate;...public void setUriTemplateHandler(UriTemplateHandler handler) {this.restTemplate.setUriTemplateHandler(handler);}...以setUriTemplateHandler為例,我們看到實際上TestRestTemplate調用了restTemplate里面的具體方法。
我們看一下TestRestTemplate基本的使用:
@Testpublic void testGet (){TestRestTemplate testRestTemplate = new TestRestTemplate();ResponseEntity<String> response = testRestTemplate.getForEntity(FOO_RESOURCE_URL + "/1", String.class);assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));}使用Basic Auth Credentials
TestRestTemplate封裝了基本的Auth Credentials,我們可以這樣使用:
TestRestTemplate testRestTemplate= new TestRestTemplate("user", "passwd"); ResponseEntity<String> response = testRestTemplate.getForEntity(URL_SECURED_BY_AUTHENTICATION, String.class);assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));使用HttpClientOption
HttpClientOption提供了如下幾個選項:ENABLE_COOKIES, ENABLE_REDIRECTS, 和 SSL。
我們看下TestRestTemplate怎么使用:
TestRestTemplate testRestTemplate = new TestRestTemplate("user", "passwd", TestRestTemplate.HttpClientOption.ENABLE_COOKIES); ResponseEntity<String> response = testRestTemplate.getForEntity(URL_SECURED_BY_AUTHENTICATION, String.class);assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));如果我們不需要認證,則可以這樣使用:
TestRestTemplate(TestRestTemplate.HttpClientOption.ENABLE_COOKIES)我們也可以在創(chuàng)建TestRestTemplate之后添加認證:
TestRestTemplate testRestTemplate = new TestRestTemplate(); ResponseEntity<String> response = testRestTemplate.withBasicAuth("user", "passwd").getForEntity(URL_SECURED_BY_AUTHENTICATION, String.class);assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));使用RestTemplateBuilder
RestTemplateBuilder為我們提供了自定義RestTemplate的機會,我們可以使用它來對RestTemplate進行封裝:
RestTemplateBuilder restTemplateBuilder = new RestTemplateBuilder(); restTemplateBuilder.configure(restTemplate); TestRestTemplate testRestTemplate = new TestRestTemplate(restTemplateBuilder); ResponseEntity<String> response = testRestTemplate.getForEntity(FOO_RESOURCE_URL + "/1", String.class);assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));本文的例子可以參考https://github.com/ddean2009/learn-springboot2/tree/master/springboot-testRestTemplate
更多精彩內容且看:
- 區(qū)塊鏈從入門到放棄系列教程-涵蓋密碼學,超級賬本,以太坊,Libra,比特幣等持續(xù)更新
- Spring Boot 2.X系列教程:七天從無到有掌握Spring Boot-持續(xù)更新
- Spring 5.X系列教程:滿足你對Spring5的一切想象-持續(xù)更新
- java程序員從小工到專家成神之路(2020版)-持續(xù)更新中,附詳細文章教程
更多教程請參考 flydean的博客
總結
以上是生活随笔為你收集整理的Spring Boot的TestRestTemplate使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Boot中的测试
- 下一篇: Spring Boot中的Propert