测试Spring MVC控制器的@MessageMapping WebSocket方法

and*_*ler 3 java spring spring-mvc spring-test

我目前正在尝试对Spring 4.0中添加的WebSockets的支持,如本指南中所述。如指南中所示,带有注释的方法@MessageMapping可以添加到任何Spring MVC控制器中,其中也可能包含@RequestMapping方法。

弹簧测试模块有编写集成测试的支持@RequestMapping方法(如描述在这里以一种非常简单和流体的方式):

@Test
public void getAccount() throws Exception {
    this.mockMvc.perform(get("/accounts/1").accept(MediaType.parseMediaType("application/json;charset=UTF-8")))
        .andExpect(status().isOk())
        .andExpect(content().contentType("application/json"))
        .andExpect(jsonPath("$.name").value("Lee"));
}
Run Code Online (Sandbox Code Playgroud)

是否有@MessageMapping使用WebSockets的测试方法的类似支持?我没有在任何Spring模块中找到任何东西,并且WebSocket指南均未包含任何测试。如果没有,我是否需要实际部署应用程序并使用WebSocketConnectionManager来连接测试客户端?还是我可以从春季测试中构建一些API?

这个示例项目包含一个如此小的测试客户端,但是我希望将其集成到实际测试中,而无需我部署应用程序并在测试中对已部署的路径进行硬编码。

Ros*_*hev 5

还没有类似Spring MVC Test的@MessageMapping方法。但是,即使没有流畅的API,也应有可能采用类似的测试方法。JIRA中有一张票(请参阅https://jira.spring.io/browse/SPR-11266)提供文档,因此请在不久的将来查看该票以获取更多详细信息。