我正在为没有STOMP和SockJs的Springboot编写WebSocket实现的单元测试用例。手动测试时,基本功能正常运行。
但是当我尝试以下单元测试用例时失败了。
@Test
public void test() throws Exception {
ResultActions resultActions = mvc.perform(MockMvcRequestBuilders.request(HttpMethod.GET,
new URI("ws://localhost:8080" + WEBSOCKET_ENDPOINT))
.header("Connection", "Upgrade")
.header("Upgrade", "websocket")
.header("Sec-WebSocket-Version", "13")
.header("Sec-WebSocket-Key", "some_key"));
resultActions.andExpect(status().isOk());
}
在运行此测试用例时出现以下错误。
org.springframework.web.util.NestedServletException:请求处理失败;嵌套的异常是org.springframework.web.socket.server.HandshakeFailureException:
请求ws:// localhost / websockets未捕获失败;
嵌套的异常是java.lang.IllegalArgumentException:没有'javax.websocket.server.ServerContainer'ServletContext属性。您是否在支持JSR-356的Servlet容器中运行?
我这里缺少什么吗?