gpt4 book ai didi

java - WireMock - 在 POST stub 工作正常时, stub GET 与 body 不工作

转载 作者:行者123 更新时间:2023-11-28 20:41:10 25 4
gpt4 key购买 nike

当尝试测试客户端类时,POST 调用 stub 工作正常,而 GET 则不然。我在这里做错了什么/没有正确理解?

客户端代码(POST):

HttpResponse httpResponse = new DefaultHttpRequestBuilder(HttpMethod.POST, SERVICE_URL_GET_MAGIC)
.withBody(parseMagic(magicName))
.execute();

stub (POST):

stubFor(post(urlEqualTo("/api/get-magic"))
.withRequestBody(equalToJson(magicNameParsed))
.willReturn(aResponse()
.withHeader("Content-Type", "application/json")
.withBody(magicDtoParsed)));

工作正常(httpResponse 将有 200 OK)。

GET 使用时,它不会对 api 调用进行 stub (httpResponse 将是 404 Not found)。

HttpResponse httpResponse = new DefaultHttpRequestBuilder(HttpMethod.GET, SERVICE_URL_GET_MAGIC)
.withBody(parseMagic(magicName))
.execute();

stubFor(get(urlEqualTo("/api/get-magic"))
.withRequestBody(equalToJson(magicNameParsed))
.willReturn(aResponse()
.withHeader("Content-Type", "application/json")
.withBody(magicDtoParsed)));

最佳答案

我认为问题在于您在 get 请求中期望有一个“正文”,但是 get 请求不能有正文(只有 PUTPOST 请求可以有 body )。

尝试做以下事情

stubFor(get(urlEqualTo("/api/get-magic"))
.willReturn(aResponse()
.withHeader("Content-Type", "application/json")
.withBody(magicDtoParsed)));

请注意,我已经删除了行 .withRequestBody(equalToJson(magicNameParsed))

顺便说一句。刺伤是指您使用刀或锋利的物体伤害某人/某物。 Stubbing 是您在上下文测试中说话时要使用的词 :)

关于java - WireMock - 在 POST stub 工作正常时, stub GET 与 body 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32035400/

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