2017-07-07 3 views
0

J'ai un appel de service Web à l'aide du client HTTP Java. Besoin de faire des tests Junit en utilisant Mockito pour la réponse de WebService (HttpResponse).Comment se moquer de HttpResponse pour le service Web (à l'aide de JavaHttpClient)?

Gson gson = new Gson(); 
HttpResponse httpResponse= JavaHttpClient.callWebService("URL",object); 
String json = EntityUtils.toString(httpResponse.getEntity()); 
response = gson.fromJson(json, ClassName.class); 
log.info("Response: " + new Gson().toJson(response)); 

Comment définir les valeurs fictives pour httpResponse.getEntity()? et cela devrait être convertir en JSON comme ci-dessus

Merci Nithyanandan K

+0

Est-ce que 'JavaHttpClient' est statique? Si c'est le cas, ce ne serait pas possible dans mockito, mais être possible dans PowerMock. – Compass

+0

que j'ai changé en créant une interface. J'ai besoin de comment simuler les valeurs de response.getentity(). –

+0

Vous pouvez ensuite simuler l'interface, créer une HttpResponse et la remplir avec des données factices, puis la renvoyer via l'interface simulée. – Compass

Répondre

0

Voici quelques échantillons MockServer. Modifiez-le pour votre exigence.

import static org.mockserver.integration.ClientAndServer.startClientAndServer; 
import static org.mockserver.model.HttpRequest.request; 
import static org.mockserver.model.HttpResponse.response; 

import org.mockserver.client.server.MockServerClient; 
import org.mockserver.initialize.ExpectationInitializer; 
import org.mockserver.model.Header; 
import org.mockserver.model.HttpStatusCode; 

public class MockServerInitializer implements ExpectationInitializer { 

    /** 
    * Standalone mock server 
    * 
    * @param args 
    */ 
    public static void main(String[] args) { 
    MockServerClient mockServerClient = startClientAndServer(9999); 
    defineMockServerBehaviour(mockServerClient); 
    } 

    @Override 
    public void initializeExpectations(MockServerClient mockServerClient) { 
    defineMockServerBehaviour(mockServerClient); 
    } 

    public static void defineMockServerBehaviour(MockServerClient mockServer) { 

    mockServer.when(
     request() 
     .withMethod("POST") 
     .withPath("/Sample") 
    ).respond(
     response() 
     .withStatusCode(HttpStatusCode.OK_200.code()) 
     .withHeader(Header.header("Content-Type", "application/xml")) 
     .withBody("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + 
      "<Response>\n" + 
      " <responseStatus>OK</responseStatus>\n" + 
      "</Response>")); 
    } 
}