gpt4 book ai didi

java - 如何使用 WireMock stub 多个参数 Springboot Restful POST Endpoint

转载 作者:太空宇宙 更新时间:2023-11-04 09:33:02 26 4
gpt4 key购买 nike

我是wiremock新手,并尝试对以下springboot Restful端点的调用进行 stub 。

@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(.....) 之前设置 2 个字符串请求参数的方法

我已经尝试过:

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$NotFound: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)));

请帮助提供代码片段或引用。

最佳答案

由于参数 templatetemplateDataAsJson 均使用 @RequestParam 进行注释,因此应在wiremock stub 中相应地传递它们,如下所示。

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

其中 value1value2 是两个参数各自的值。

关于java - 如何使用 WireMock stub 多个参数 Springboot Restful POST Endpoint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56845431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com