我正在尝试为Webflux Reactive WebSocket编写一个测试,当Assert失败时,测试正常,但当它应该通过测试时,测试继续运行,什么也没有发生。
下面是简化版的测试。
webSocketClient.execute(getUrl("/websocket"),
session -> {
return session.receive().map(WebSocketMessage::getPayloadAsText)
.doOnNext(it->assertEquals("test", it)).then();
}
).block(Duration.ofSeconds(2));
尝试将Assert放置在不同的位置,如。map,.doOnNext(),.handle(),但没有任何变化。
如果有人能帮忙,我将不胜感激。谢谢
1条答案
按热度按时间vxbzzdmp1#
我发现的唯一一个解决方案来自spring framework本身:
private void testEcho()
www.example.com简而言之:
1.您应该在会话处理程序之外创建一个变量(第83行)
1.技巧是将响应结果存储在外部变量中(第88行)
1.然后使用block()执行完整的WebSocket查询(第84行)
1.现在,您可以在会话的作用域之外对该变量进行Assert(第91、92行)
P.s.我不是StackOverlow回答专业人士,所以欢迎任何格式帮助/建议!