anchor.diff:  
   
   
  +[[boot-features-restclient]]
  +== Calling REST services
  +If you need to call remote REST services from your application, you can use Spring
  +Framework's `RestTemplate` class. Since `RestTemplate` instances often needs to be
  +customized before being used, Spring Boot does not provide any single auto-configured
  +`RestTemplate` bean. It does, however, auto-configure a `RestTemplateBuilder` which can be
  +used to create `RestTemplate` instances when needed. The auto-configured
  +`RestTemplateBuilder` will ensure that sensible `HttpMessageConverters` are applied
  +to `RestTemplate` instances.
  +
  +Here's a typical example:
  +
  +[source,java,indent=0]
  +----
  +	@Service
  +	public class MyBean {
  +
  +		private final RestTemplate restTemplate;
  +
  +		public MyBean(RestTemplateBuilder restTemplateBuilder) {
  +			this.restTemplate = restTemplateBuilder.build();
  +		}
  +
  +		public String someRestCall(String name) {
  +			return this.restTemplate.getForObject("/{name}/details", Details.class, name);
  +		}
  +
  +	}
  +----
  +
  +TIP: `RestTemplateBuilder` includes a number of useful methods that can be used to quickly
  +configure a `RestTemplate`. For example, to add BASIC auth support you can use
  +`build.basicAuthorization("user', "password").build()`.
  +
  +
  +
   [[boot-features-email]]
   == Sending email
   The Spring Framework provides an easy abstraction for sending email using the
  
positive.code: 
  [[boot-features-testing-spring-boot-applications-testing-autoconfigured-jpa-test]]
  ==== Auto-configured Data JPA tests
  The `@DataJpaTest` can be used if you want to test JPA applications. By default it will
  configure an in-memory embedded database, scan for `@Entity` classes and configure Spring
  Data JPA repositories. Regular `@Component` beans will not be loaded into the
  `ApplicationContext`.
  
negative.code: 
  
  
  
  [[boot-features-testing-spring-boot-applications-testing-autoconfigured-rest-client]]
  ==== Auto-configured REST clients
  Use `@RestClientTest` annotation can be used if you want to test REST clients. By default
  it will auto configure Jackson and GSON support, configure a `RestTemplateBuilder` and
  add support for `MockRestServiceServer`. The specific beans that you want to test should
  be specified using `value` or `components` attribute of `@RestClientTest`:
  
  
  [source,java,indent=0]
  ----
  	@RunWith(SpringRunner.class)
  	@RestClientTest(RemoteVehicleDetailsService.class)
  	public class ExampleRestClientTest {
  
  		@Autowired
  		private MyService service;
  
  		@Autowired
  		private MockRestServiceServer server;
  
  		@Test
  		public void getVehicleDetailsWhenResultIsSuccessShouldReturnDetails()
  				throws Exception {
  			this.server.expect(requestTo("/greet/details"))
  					.andRespond(withSuccess("hello", MediaType.TEXT_PLAIN));
  			String greeting  = this.service.callRestService();
  			assertThat(greeting).isEqualTo("hello");
  		}
  
  	}
  ----
  
  
  
  [[boot-features-testing-spring-boot-applications-testing-autoconfigured-rest-docs]]
  ==== Auto-configured Spring REST Docs tests
  The `@AutoConfigureRestDocs` annotation can be used if you want to use Spring REST Docs
  in your tests. It will automatically configure `MockMvc` to use Spring REST Docs and
  remove the need for Spring REST Docs' JUnit rule.
  
  