用途:为 Spring 应用中的 WebSocket/STOMP 端点编写集成测试。资料显示其关键信号包括 WebSocketStompClient、StompSession、StompFrameHandler、BlockingQueue、RANDOM_PORT,以及 session.subscribe、session.send 和 /topic/、/queue/、/app/ 等目的地与 @MessageMapping、@SendToUser。
主要能力:覆盖 WebSocketStompClient 的搭建与 connect/subscribe/send 流程、用 BlockingQueue 接收 STOMP 消息、用 CountDownLatch 做单次事件断言、测试错误帧与 STOMP 错误处理、@SendToUser 定向消息测试,以及在 Spring Security 下的 WebSocket 会话 Cookie 认证测试。也说明可绕过基础设施,直接对 @MessageMapping 处理器做纯单元测试这一快速路径。
使用方式与限制:资料强调 WebSocket 测试需要 @SpringBootTest(webEnvironment = RANDOM_PORT),因为 @WebMvcTest 无法工作;异步消息处理需按参考资料中的模式处理。已知反模式包括 Thread.sleep()、超时设置过短、会话泄露。每条具体用法应查阅 references/websocket-stomp-testing-patterns.md。
适用场景:测试基于 STOMP 的 Spring WebSocket 端到端消息流、用户定向消息、错误帧传输与带 Spring Security 的会话认证。不适用于:无 STOMP 的响应式 WebFlux 端点(用 spring-webflux-testing)、REST 控制器(用 spring-mvc-testing)、认证授权流程(用 spring-security-testing)、@MessageMapping 处理器逻辑的纯单元测试(用 spring-testing-fundamentals)。
兼容性:资料标注可与 Spring Boot 3.2+/4.x、Spring Framework 6.x/7.x、Spring WebSocket、JUnit 5 配合。价格、平台与其它细节暂未提供。