2016-07-18 21 views
0

新しいバージョン2.1.7のWiremockが大きく変更されました。以前のメソッドのいくつかは、実行時にプログラムでスタブを追加することで、直接的なアプローチでは使用できなくなったようです。私はこのようなバージョン1.57でスタブを追加することができますたとえばバージョン2.1.7のWireMockサーバーにスタブマッピングを追加する方法は?

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); 
} 

私は2.1.7のためにそれを達成するにはどうすればよいですか? (私はドキュメントを読んでいますが、JUnitアノテーションしか見つかりませんでしたが、私の場合は役に立ちません)。

OK

答えて

0

私は私が最終的にバージョン2.1.7のために同じ方法を書く方法を考え出したと思う:

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

'WireMock.aResponseを言って使用静的な輸入品の代わりに、()'などにこれを行うには、コードを 'aResponse()'に変更してから、読み込み時に静的な読み込みを行います。コードをもっと短くして読みやすくします。 –

+0

私は、Junit Testではなく、「スタンドアロン版」が必要です。したがって、静的インポートを使用することは、この場合には役に立たない。 – Brain

関連する問題