我添加了一个WebClientCustomizer,它从上下文视图中获取一个值,该值将作为输出请求的头添加。
@Override
public void customize(WebClient.Builder builder) {
builder
.filter((request, next) ->
Mono.deferContextual(contextView ->
next.exchange(from(request)
.header("myHeader", contextView.getOrDefault("id", UUID.randomUUID().toString())).build()
)
));
}
我想为此创建一个测试,其中contextView包含一个预定义的值。我可以使用MockWebServer接收请求,然后从中读取头部。但问题是,如何在测试中填充reactor上下文?
1条答案
按热度按时间odopli941#
您可以使用几种方法来验证此逻辑。
1.通过显式提供上下文来单独测试
WebClient
。1.此外,您可以使用
WebTestClient
通过向控制器发送请求来验证流e2e。