2016-07-18 22 views
0

Die neue Version 2.1.7 von Wiremock hat sich stark verändert. Einige der vorherigen Methoden scheinen für einen direkten Ansatz nicht mehr verfügbar zu sein, indem während der Laufzeit programmgesteuert Stubs hinzugefügt werden.Wie fügt man ein StubMapping zu einem Wiremock-Server in Version 2.1.7 hinzu?

Zum Beispiel könnte ich einen Stub in der Version 1.57 wie folgt hinzu:

private void setStub(WireMockServer server, String url, RequestMethod requestMethod, Object body) 
throws JsonProcessingException { 

    UrlMatchingStrategy urlStrategy = new UrlMatchingStrategy(); 
    urlStrategy.setUrl(url); 

    ObjectMapper mapper = new ObjectMapper(); 
    String jsonInString = mapper.writeValueAsString(body); 

    StubMapping mapping = new MappingBuilder(requestMethod, urlStrategy).willReturn(
    new ResponseDefinitionBuilder().withHeader("Access-Control-Allow-Origin", "*").withBody(jsonInString)).build(); 

    server.addStubMapping(mapping); 
} 

Wie kann ich erreichen, dass für 2.1.7? (Ja, ich habe die Dokumentation gelesen, aber ich habe nur JUnit-Anmerkungen gefunden, die in meinem Fall nicht nützlich sind).

Antwort

0

OK Ich glaube, ich schließlich, wie heraus die gleiche Methode für die Version 2.1.7 schreiben:

private void setStub(WireMockServer server, String url, RequestMethod requestMethod, Object body) 
    throws JsonProcessingException { 

    ObjectMapper mapper = new ObjectMapper(); 
    String jsonInString = mapper.writeValueAsString(body); 

    server.addStubMapping(
     WireMock.request(requestMethod.getName(), WireMock.urlMatching(url)) 
       .willReturn(WireMock.aResponse().withStatus(200).withBody(jsonInString) 
        .withHeader("Content-Type", "text/plain").withHeader("Access-Control-Allow-Origin", "*") 
        ) 
       .build()); 
} 
+0

Verwendung statische Importe anstatt zu sagen, 'WireMock.aResponse()', usw., das zu tun, Ändern Sie den Code in 'aResponse()' und führen Sie dann beim Importieren einen statischen Import durch. Es verkürzt den Code erheblich und macht ihn lesbarer. –

+0

Ich brauche eine "Standalone" Version, keinen Junit Test. Daher sind statische Importe in diesem Fall nutzlos. – Brain