對于Spring Boot應用程序中WebSocket通信的單元測試,可以使用Spring Boot提供的@SpringBootTest
注解和MockMvc進行測試。以下是一個簡單的示例:
首先,創建一個WebSocket Controller類:
@Controller
public class WebSocketController {
@MessageMapping("/hello")
@SendTo("/topic/greetings")
public Greeting greeting(HelloMessage message) throws Exception {
return new Greeting("Hello, " + message.getName() + "!");
}
}
然后編寫單元測試類:
@SpringBootTest
@AutoConfigureMockMvc
public class WebSocketControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void testWebSocketCommunication() throws Exception {
String message = "John";
this.mockMvc.perform(
post("/hello")
.contentType(MediaType.APPLICATION_JSON)
.content("{\"name\": \"" + message + "\"}")
)
.andExpect(status().isOk())
.andExpect(jsonPath("$.content").value("Hello, " + message + "!"));
}
}
在這個示例中,我們使用@AutoConfigureMockMvc
注解來自動配置MockMvc,并通過發送一個POST請求來模擬WebSocket通信。我們期望收到一個帶有正確內容的JSON響應。
最后,運行單元測試類,可以檢查WebSocket Controller類是否按預期工作。