springboot整合websocket,测试类启动报错,
解决方式:在注解中加上webEnvironment参数,此参数的含义,参看官方文档
You can use the webEnvironment attribute of @SpringBootTest to further refine how your tests will run:
MOCK— Loads aWebApplicationContextand provides a mock servlet environment. Embedded servlet containers are not started when using this annotation. If servlet APIs are not on your classpath this mode will transparently fallback to creating a regular non-webApplicationContext. Can be used in conjunction with@AutoConfigureMockMvcforMockMvc-based testing of your application.RANDOM_PORT— Loads anServletWebServerApplicationContextand provides a real servlet environment. Embedded servlet containers are started and listening on a random port.DEFINED_PORT— Loads anServletWebServerApplicationContextand provides a real servlet environment. Embedded servlet containers are started and listening on a defined port (i.e from yourapplication.propertiesor on the default port8080).NONE— Loads anApplicationContextusingSpringApplicationbut does not provide any servlet environment (mock or otherwise).
有4个value可选,根据需要选择即可,其实就是给你的测试类配置了一个真实的servlet环境,并且给这个启动的嵌入式servlet容器一个端口进行监听;
如此就可以结果websocket无法获取的问题
@SpringBootTest(classes = XXX.class,webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)