WireMock - 使用 body 存根 GET 不工作,而 POST 存根工作正常
WireMock - Stubbing GET with body not working while POST stubbing work correctly
尝试测试客户端 class 时,POST 调用存根工作正常,而 GET 不工作。我在这里做错了什么/没有正确理解?
客户代码(POST):
HttpResponse httpResponse = new DefaultHttpRequestBuilder(HttpMethod.POST, SERVICE_URL_GET_MAGIC)
.withBody(parseMagic(magicName))
.execute();
有存根(POST):
stubFor(post(urlEqualTo("/api/get-magic"))
.withRequestBody(equalToJson(magicNameParsed))
.willReturn(aResponse()
.withHeader("Content-Type", "application/json")
.withBody(magicDtoParsed)));
工作正常(httpResponse 将有 200 OK)。
当 GET 使用时,它不会存根 api 调用(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 请求中有一个 'body',但是 get 请求不能有主体(只有 PUT
和 POST
请求可以有一个正文)。
尝试执行以下操作
stubFor(get(urlEqualTo("/api/get-magic"))
.willReturn(aResponse()
.withHeader("Content-Type", "application/json")
.withBody(magicDtoParsed)));
请注意,我删除了行 .withRequestBody(equalToJson(magicNameParsed))
顺便说一句。刺伤是指用刀或锋利的物体伤害 someone/something。 Stubbing 是您在上下文测试中说话时要使用的词:)
尝试测试客户端 class 时,POST 调用存根工作正常,而 GET 不工作。我在这里做错了什么/没有正确理解?
客户代码(POST):
HttpResponse httpResponse = new DefaultHttpRequestBuilder(HttpMethod.POST, SERVICE_URL_GET_MAGIC)
.withBody(parseMagic(magicName))
.execute();
有存根(POST):
stubFor(post(urlEqualTo("/api/get-magic"))
.withRequestBody(equalToJson(magicNameParsed))
.willReturn(aResponse()
.withHeader("Content-Type", "application/json")
.withBody(magicDtoParsed)));
工作正常(httpResponse 将有 200 OK)。
当 GET 使用时,它不会存根 api 调用(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 请求中有一个 'body',但是 get 请求不能有主体(只有 PUT
和 POST
请求可以有一个正文)。
尝试执行以下操作
stubFor(get(urlEqualTo("/api/get-magic"))
.willReturn(aResponse()
.withHeader("Content-Type", "application/json")
.withBody(magicDtoParsed)));
请注意,我删除了行 .withRequestBody(equalToJson(magicNameParsed))
顺便说一句。刺伤是指用刀或锋利的物体伤害 someone/something。 Stubbing 是您在上下文测试中说话时要使用的词:)