springboot整合websocket,测试类启动报错,

解决方式:在注解中加上webEnvironment参数,此参数的含义,参看官方文档

You can use the webEnvironment attribute of @SpringBootTest to further refine how your tests will run:

MOCK — Loads a WebApplicationContext and 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-web ApplicationContext. Can be used in conjunction with @AutoConfigureMockMvc for MockMvc-based testing of your application.
RANDOM_PORT — Loads an ServletWebServerApplicationContext and provides a real servlet environment. Embedded servlet containers are started and listening on a random port.
DEFINED_PORT — Loads an ServletWebServerApplicationContext and provides a real servlet environment. Embedded servlet containers are started and listening on a defined port (i.e from your application.properties or on the default port 8080).
NONE — Loads an ApplicationContext using SpringApplication but does not provide any servlet environment (mock or otherwise).
有4个value可选,根据需要选择即可,其实就是给你的测试类配置了一个真实的servlet环境,并且给这个启动的嵌入式servlet容器一个端口进行监听;

如此就可以结果websocket无法获取的问题

@SpringBootTest(classes = XXX.class,webEnvironment = SpringBootTest.WebEnvironment.RANDOM_POR

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐