我不理解如何为Spring Boot应用程序中的WebSocket编写正确的测试用例。我有一个实现了WebSocketHandler接口的类,并将此处理程序添加到WebSocketConfigurer中:
但是当我编写下面的测试用例时,会出现异常:
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(logWebSocketHandler() , "/test")
.addInterceptors(new HttpSessionHandshakeInterceptor())
.setAllowedOrigins("*");
}
@Bean
public LogWebSocketHandler logWebSocketHandler(){
return new LogWebSocketHandler();
}
}
但是当我编写下面的测试用例时,会出现异常:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration({App.class})
@WebAppConfiguration
public class LogsControllerTest {
private WebSocketContainer container;
@Before
public void setup() {
container = ContainerProvider.getWebSocketContainer();
}
@Test
public void testGetLog() throws Exception {
Session session = container.connectToServer(new TestEndpoint(),
URI.create("ws://127.0.0.1:8080/test"));
}
}
异常:
javax.websocket.DeploymentException
:启动WebSocket连接的HTTP请求失败。
我看到如果我设置ws://127.0.0.1:8080/test/
(末尾带有斜杠)会起作用,但它没有起作用。
我做错了什么?