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

时间:2014-01-07 12:55:54

标签: java spring spring-mvc spring-test

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

spring-test模块支持以非常简单和流畅的方式编写@RequestMapping方法的集成测试(如here所述):

@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"));
}

是否有类似的支持使用WebSockets测试@MessageMapping方法?我没有在任何Spring模块中找到任何内容,也没有任何WebSocket指南包含任何测试。如果没有,我是否需要实际部署应用程序并使用WebSocketConnectionManager连接测试客户端?或者我是否可以通过spring-test建立一些API?

This sample project包含如此小的测试客户端,但我更愿意将其集成到实际测试中,而无需我在测试中部署应用程序并对已部署的路径进行硬编码。

1 个答案:

答案 0 :(得分:5)

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