Google HTTP Client for Java

Overview
Setup Instructions
Component Modules
Android
Google App Engine
HTTP Transport
JSON
Exponential Backoff
Unit Testing
Support

HTTP Unit Testing

When writing unit tests using this HTTP framework, don’t make requests to a real server. Instead, mock the HTTP transport and inject fake HTTP requests and responses. The pluggable HTTP transport layer of the Google HTTP Client Library for Java makes this flexible and simple to do.

Also, some useful testing utilities are included in the com.google.api.client.testing.http package ( @Beta ).

The following simple example generates a basic HttpResponse :

  HttpTransport 
 transport 
 = 
 new 
 MockHttpTransport 
 (); 
 HttpRequest 
 request 
 = 
 transport 
 . 
 createRequestFactory 
 (). 
 buildGetRequest 
 ( 
 HttpTesting 
 . 
 SIMPLE_GENERIC_URL 
 ); 
 HttpResponse 
 response 
 = 
 request 
 . 
 execute 
 (); 
 

The following example shows how to override the implementation of the MockHttpTransport class:

  HttpTransport 
 transport 
 = 
 new 
 MockHttpTransport 
 () 
 { 
 @Override 
 public 
 LowLevelHttpRequest 
 buildRequest 
 ( 
 String 
 method 
 , 
 String 
 url 
 ) 
 throws 
 IOException 
 { 
 return 
 new 
 MockLowLevelHttpRequest 
 () 
 { 
 @Override 
 public 
 LowLevelHttpResponse 
 execute 
 () 
 throws 
 IOException 
 { 
 MockLowLevelHttpResponse 
 response 
 = 
 new 
 MockLowLevelHttpResponse 
 (); 
 response 
 . 
 addHeader 
 ( 
 "custom_header" 
 , 
 "value" 
 ); 
 response 
 . 
 setStatusCode 
 ( 
 404 
 ); 
 response 
 . 
 setContentType 
 ( 
 Json 
 . 
 MEDIA_TYPE 
 ); 
 response 
 . 
 setContent 
 ( 
 "{\"error\":\"not found\"}" 
 ); 
 return 
 response 
 ; 
 } 
 }; 
 } 
 }; 
 HttpRequest 
 request 
 = 
 transport 
 . 
 createRequestFactory 
 (). 
 buildGetRequest 
 ( 
 HttpTesting 
 . 
 SIMPLE_GENERIC_URL 
 ); 
 HttpResponse 
 response 
 = 
 request 
 . 
 execute 
 (); 
 

For more examples, see the HttpResponseTest.java and HttpRequestTest.java files.

Design a Mobile Site
View Site in Mobile | Classic
Share by: