我为Handler写了一个测试(spring weblux)
测试:
@Test
public void checkServicesHandlerTest(){
Request request = new Request();
request.setMsisdn("ffdfdfd");
this.testClient.post().uri("/check")
.body(Mono.just(request), Request.class).exchange().expectStatus().isOk();
}
Run Code Online (Sandbox Code Playgroud)
但结果我有一个错误.
Timeout on blocking read for 5000 MILLISECONDS
Run Code Online (Sandbox Code Playgroud)
处理程序很简单
public Mono<ServerResponse> check(ServerRequest request){
Request request = request.bodyToMono(Request.class).block();
Run Code Online (Sandbox Code Playgroud)
问题出在哪儿 ?但如果我向服务器发送直接请求,一切都可以.
ROC*_*CKY 18
我在运行集成测试时看到类似的问题和异常,其中一些集合了来自多个其他具有数据库访问权限的服务的响应.所以我们在运行Integration测试时间歇地看到这个问题.我们在Gradle中使用Spring Boot 2.0.0.RC1和Junit 5.我这样做是为了解决这个问题.关键是改变webclient,最坏情况下响应超时为30秒.
@Autowired
private WebTestClient webTestClient;
@BeforeEach
public void setUp() {
webTestClient = webTestClient
.mutate()
.responseTimeout(Duration.ofMillis(30000))
.build();
}
Run Code Online (Sandbox Code Playgroud)
Mus*_*oub 11
您可以使用注释覆盖超时@AutoConfigureWebTestClient(timeout = "36000").
例如 :
@AutoConfigureWebTestClient(timeout = "36000")
@SpringBootTest
class MyTestClass {
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4630 次 |
| 最近记录: |