Springit Boot Junit тест, когда использовать веб-сокет, он не работает

1. при использовании @ServerEndpoint, Junit не работает, конфиг websocket в виде списка, когда @ServerEndpoint одобрен, junit работает хорошо

@ServerEndpoint(value = "/websocket", configurator = SessionForWebSocket.class)
@Component
public class WebSocketBean {
    ....
}

2. конфиг myjunit есть

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = HdConsumerApplication.class)

@WebAppConfiguration
@Transactional
public class HdJunitTest {}

3. при запуске junit я получил ошибку:

2017-08-18 21:47:17 INFO  [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping  - Mapped "{[/env || /env.json],methods=[GET],produces=[application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-08-18 21:47:17 INFO  [main] org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping  - Mapped "{[/actuator || /actuator.json],produces=[application/json]}" onto public org.springframework.hateoas.ResourceSupport org.springframework.boot.actuate.endpoint.mvc.HalJsonMvcEndpoint.links()
2017-08-18 21:47:17 INFO  [main] org.springframework.web.socket.server.standard.ServerEndpointExporter  - Registering @ServerEndpoint class: class net.huadong.tech.msg.WebSocketBean
2017-08-18 21:47:17 INFO  [main] org.springframework.boot.autoconfigure.logging.AutoConfigurationReportLoggingInitializer  - 
Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2017-08-18 21:47:17 ERROR [main] org.springframework.boot.SpringApplication  - Application startup failed
java.lang.UnsupportedOperationException: MockServerContainer does not support addEndpoint(Class)
    at org.springframework.test.context.web.socket.MockServerContainer.addEndpoint(MockServerContainer.java:126)
    at org.springframework.web.socket.server.standard.ServerEndpointExporter.registerEndpoint(ServerEndpointExporter.java:145)
    at org.springframework.web.socket.server.standard.ServerEndpointExporter.registerEndpoints(ServerEndpointExporter.java:129)`enter code here`
    at org.springframework.web.socket.server.standard.ServerEndpointExporter.afterSingletonsInstantiated(ServerEndpointExporter.java:107)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:779)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371)

4. любой метод может помочь мне, исправить проблему, или когда junit исключает WebSocketBean

1 ответ

У меня была такая же проблема, но когда я добавил следующий код, это решило проблему. Надеюсь, это поможет вам.

@RunWith(SpringRunner.class)
@SpringBootTest(classes = ZplanApplication.class, 
                webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
Другие вопросы по тегам