WebFlux Controller层测试

Controller.java

import cn.jdw.silky.retrofit.SilkyWebFluxClient;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;
import java.io.IOException;
@RestController
@RequiredArgsConstructor
public class ConsumeController {
private final SilkyWebFluxClient silkyWebFluxClient;
@GetMapping("/producer/sleep/{seconds}")
Mono<String> sleep(@PathVariable("seconds") int seconds) throws IOException {
return silkyWebFluxClient.port(seconds);
}
}

ApplicationTest.java

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.web.reactive.server.WebTestClient;
import org.springframework.web.reactive.function.client.WebClient;
import java.net.URI;
import java.util.stream.IntStream;
/**
* @author ListJiang
*/
@ActiveProfiles("native")
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SquareWebServerTest {
@Autowired
private WebTestClient webClient;
@Test
void contextLoads() {
IntStream.range(1, 20).parallel().forEach(i -> {
var result = webClient.get().uri("/producer/sleep/3")
.accept(MediaType.APPLICATION_JSON)
.exchange()
.expectStatus().isOk()
.expectBody(String.class).returnResult().getResponseBody();
System.out.println(result);
});
}
}
posted @   临渊不羡渔  阅读(332)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示