gpt4 book ai didi

java - Spring Cloud Gateway 自定义过滤器工厂的单元测试

转载 作者:行者123 更新时间:2023-12-01 19:14:43 26 4
gpt4 key购买 nike

我已经为云网关实现了自定义过滤器工厂。但是,我无法弄清楚编写单元测试用例的方法。在探索默认的过滤器工厂测试用例时,我发现大多数工厂测试类都扩展了 BaseWebClientTests以及测试包中的其他类。

我的问题是我是否应该将这些中间测试类复制粘贴到我的本地测试包中?这里的社区推荐是什么?

最佳答案

这是我的结果,供您引用

class CustomGatewayFilterFactoryTest {

@Autowired
private CustomGatewayFilterFactory factory;

private ServerWebExchange exchange;
private GatewayFilterChain filterChain = mock(GatewayFilterChain.class);
private ArgumentCaptor<ServerWebExchange> captor = ArgumentCaptor.forClass(ServerWebExchange.class);

@BeforeEach
void setup() {
when(filterChain.filter(captor.capture())).thenReturn(Mono.empty());
}

@Test
void customTest() {
MockServerHttpRequest request = MockServerHttpRequest.get(DUMMY_URL).build();
exchange = MockServerWebExchange.from(request);
GatewayFilter filter = factory.apply(YOUR_FACTORY_CONFIG);
filter.filter(exchange, filterChain);
// filter.filter(exchange, filterChain).block(); if you have any reactive methods

ServerHttpRequest actualRequest = captor.getValue().getRequest();

// Now you can assert anything in the actualRequest
assertEquals(request, actualRequest);
}

}

关于java - Spring Cloud Gateway 自定义过滤器工厂的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59431080/

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