Mel*_*ius 4 java testing spring-webflux
在我的 webflux 应用程序中,我有这个GET端点
v3/callback?state=cGF5bWVudGlkPTRiMmZlMG
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用编写集成测试 WebTestClient
@Test
public void happyScenario() {
webTestClient.get().uri("/v3/callback?state=cGF5bWVudGlkPTRiMmZlMG")
.exchange()
.expectStatus()
.isOk();
}
Run Code Online (Sandbox Code Playgroud)
这个测试用例返回404 notFound,如果我删除了查询参数,它将被调用,但state参数将丢失
我试着用 attribute
webTestClient.get().uri("/v3/callback")
.attribute("state","cGF5bWVudGlkPTRiMmZlMG")
.exchange()
.expectStatus()
.isOk();
Run Code Online (Sandbox Code Playgroud)
但仍然state缺少参数,使用时如何在请求中包含查询参数webTestClient?
Akh*_*dla 10
您可以利用UriBuilder.
webTestClient.get()
.uri(uriBuilder ->
uriBuilder
.path("/v3/callback")
.queryParam("state", "cGF5bWVudGlkPTRiMmZlMG")
.build())
.exchange()
.expectStatus()
.isOk();
Run Code Online (Sandbox Code Playgroud)
这应该有效。