【问题标题】:springboot junit test when use websocket , it doesn't workspringboot junit 测试使用 websocket 时,它不起作用
【发布时间】:2017-08-18 14:07:00
【问题描述】:

1.当使用@ServerEndpointJunit不工作时,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时

【问题讨论】:

    标签: java junit spring-boot-test


    【解决方案1】:

    我遇到了同样的问题,但是当我添加以下代码时,它解决了问题。希望对你有帮助。

    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = ZplanApplication.class, 
                    webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 2018-05-03
      相关资源
      最近更新 更多