我想要实现的是测试一些背后有网络套接字通信的逻辑。
我最近实现了 WebSocket 客户端端点,我想像 http 与 WireMock 的集成一样对其进行测试——以声明方式指定来自外部 WebSocket 服务器的 Web 套接字消息。
预期的库/API:
// SomeLibrary is configured properly
SomeLibrary.stubSocketMessage(forSession(idFromString("Some session id.")))
.respondTo("Message sent from service with web socket client endpoint.")
.withText("Response from web socket server stub.")
.withDelay(500);
// calling my logic that uses WS / sends message
// assertions
我找不到这样的库,因此我只是在我的测试包中实现了嵌入式 websocket 服务器。对于单会话场景来说已经足够了。
总结一下:我在服务层的某个地方有一个 websocket 连接,我想用 ie MockMvc 编写端到端测试。我想要一些预定义的 WS 模拟行为,因此我需要一个嵌入式 http/ws 服务器并指定其 WS 服务器端点的行为。
我想要实现的目标有解决方案吗?写这样的测试有意义吗?如果不是,为什么?