Как заглушить несколько параметров Springboot Restful POST Endpoint с помощью WireMock - PullRequest
1 голос
/ 02 июля 2019

Я новичок в wiremock и пытаюсь заглушить вызов следующей конечной точки спокойной загрузки.

@PostMapping(path = "/template/pdf", produces = APPLICATION_JSON_VALUE)
public ResponseEntity<String> bindData(
        @ApiParam(value = "BindDataRequest payload", required = true)
        @RequestParam String template, @RequestParam String templateDataAsJson) throws IOException {

   //Some code 
    return ResponseEntity.ok("xyz");
}

**The following basic logic works:**

templatingService.stubFor(
                post(urlEqualTo("/template/pdf"))
                        .willReturn(aResponse().withBody(JSON_INPUT_TO_PDF_GEN).withStatus(200)));

Но мне нужен способ установки двух параметров запроса строки перед вызовом .willReturn (.....)

Я пробовал:

templateBinderService.stubFor(
                post(urlEqualTo("/template/pdf"))
                        .withRequestBody(WireMock.equalTo("jixhcjxhcjxhcxhchx"))
                        .withRequestBody(WireMock.equalTo("nhhhxhxhhhhhxhhhh"))
                        .willReturn(aResponse().withBody(JSON_INPUT_TO_HTML2PDF_GEN).withStatus(200)));

Но получил:

org.springframework.web.client.HttpClientErrorException $ Не найдено: 404 не найдено

//I have also tried:

templateBinderService.stubFor(
                post(urlEqualTo("/template/test"))
.withRequestBody(containing("param1-value"))
.withRequestBody(containing("param2-value"))

                        .willReturn(aResponse().withBody("i-am-a-response").withStatus(200)));

//I have also tried:

    templateBinderService.stubFor(
                    post(urlEqualTo("/template/test"))
                            .withRequestBody(equalToJson("{}"))
                            .willReturn(aResponse().withBody("i-am-a-response").withStatus(200)));

Пожалуйста, помогите с фрагментом кода или ссылкой.

1 Ответ

0 голосов
/ 02 июля 2019

Поскольку оба параметра template и templateDataAsJson помечены @RequestParam, их следует соответствующим образом передать в заглушку, как показано ниже.

templatingService.stubFor(
        post(urlEqualTo("/template/pdf?template=value1&templateDataAsJson=value2"))
       .willReturn(aResponse().withBody(JSON_INPUT_TO_PDF_GEN).withStatus(200)));

, где value1 и value2являются соответствующими значениями для обоих параметров.

...