我在春季使用WebTestClient编写了一个消费者合同,当我点击包含上下文参数的URL时,我的测试失败了,期望200,但响应为404。在我看来,当调用exchange()时,它对URL进行编码导致失败。我输入的网址是:-
/ v2 / resolvedPoliciesOutcome?assetClass = ABC-ABC-ABC&contextParams =(courseId = 1bf854,courseBssVer = 1,ignoreOverrides = true)
FluxExchangeResult<String> result = webTestClient.get().uri((uriBuilder ->
uriBuilder.path(GET_COURSE_SETTING_SUCCESS_URL)
.queryParam("assetClass","ABC-ABC-ABC")
.queryParam("contextParams","
(courseId=1bf854,courseBssVer=1,ignoreOverrides=true)")
.build()))
.exchange()
.expectStatus().isOk().expectHeader()
.contentType(contentType).returnResult(String.class);
即将输出:-
java.lang.AssertionError: Status expected:<200> but was:<404>
> GET http://localhost:12830/lee/v2/resolvedPoliciesOutcome?assetClass=ABC-ABC-ABC&contextParams=(courseId%3D1bf854,courseBssVer%3D1,ignoreOverrides%3Dtrue)
> WebTestClient-Request-Id: [1]
No content
< 404 Not Found
< Content-Type: [text/plain]
< Transfer-Encoding: [chunked]
< Server: [Jetty(9.2.z-SNAPSHOT)]