Тестирование веб-сокетов в Springboot без STOMP и SockJs - PullRequest
0 голосов
/ 25 января 2019

Я работаю над написанием модульных тестов для реализации WebSocket в Springboot без STOMP и SockJs. Основные функции работают нормально, когда я тестирую их вручную.

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

@Test
public void test() throws Exception {
    ResultActions resultActions = mvc.perform(MockMvcRequestBuilders.request(HttpMethod.GET,
            new URI("ws://localhost:8080" + WEBSOCKET_ENDPOINT))
            .header("Connection", "Upgrade")
            .header("Upgrade", "websocket")
            .header("Sec-WebSocket-Version", "13")
            .header("Sec-WebSocket-Key", "some_key"));
    resultActions.andExpect(status().isOk());
}

Я получаю следующую ошибку при запуске этого теста.

org.springframework.web.util.NestedServletException: обработка запроса не удалась; вложенным исключением является org.springframework.web.socket.server.HandshakeFailureException:

Неполученная ошибка для запроса ws: // localhost / websockets;

вложенное исключение - java.lang.IllegalArgumentException: нет атрибута 'javax.websocket.server.ServerContainer' ServletContext. Вы работаете в контейнере сервлетов, который поддерживает JSR-356?

Есть ли что-то, что я здесь упускаю?

...