gpt4 book ai didi

java - 如何为正在编写 Reactor Context 的 WebFilter 编写单元测试?具体来说,我要模拟什么以及如何模拟?

转载 作者:行者123 更新时间:2023-12-05 04:49:42 29 4
gpt4 key购买 nike

假设我有这个简单的 webfilter,它只写一个 react 器上下文

WebFilter filter = (serverWebExchange, webFilterChain) ->
webFilterChain
.filter(serverWebExchange)
.contextWrite(Context.of("my-key", true));

我想测试会是这样的:

StepVerifier.create(filter.filter(serverWebExchange, webFilterChain)
.expectAccessibleContext()
.hasKey("my-key")
.then()
.verifyComplete();

但我不确定如何模拟 webFilterChain 以确保写入上下文。

Mockito.when(webFilterChain.filter(any()).thenReturn(???)

有什么想法吗?

最佳答案

我有同样的问题,这是我的解决方案

WebFilterChain filterChain = filterExchange -> Mono.empty();
MockServerWebExchange exchange = MockServerWebExchange.from(
MockServerHttpRequest
.get("/your-url")
.header("my-key", "value"));

StepVerifier.create(yourFilter.filter(exchange, filterChain))
.expectAccessibleContext()
.hasKey("my-key")
.then()
.verifyComplete();

https://github.com/spring-projects/spring-framework/blob/main/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsWebFilterTests.java

关于java - 如何为正在编写 Reactor Context 的 WebFilter 编写单元测试?具体来说,我要模拟什么以及如何模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67527734/

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